Да, заряжать через ногу это отличная идея, тогда все под контролем. Надо только посмотреть как будет разряд идти, когда питание на процессоре упадет, добавить резистор между ногой, а может еще и диод для заряда.
Тк будет разряжаться через защитные диоды внутри процессора.
Что значит лишний? Как ты найдёшь последнюю запись?
еще одна нога и фрам.
все страдания сразу закончатся.
Если она единственная, то она же и последняя.
Помнится загадка. Мужик получил письмо со словами “нога не та” и застрелился.)
Её нет на готовых ардуино-платах.
а конденсаторы с диодами и резисторами есть))
Почему единственная? Ты пишешь в ЕЕПРОМ побитно. При включении/загрузке считаешь к-во записанных бит. ФФ является признаком конца записи.
Побитно я не умею писать. И бит FF формировать - тоже ))
Есть еепром. Самое простое. Выше считали, что ячейки на сто лет хватит. )
Пчему это? Новые чипы (относительно) позволяют писать без стирания.
Я уже, конечно, всё запамятовал.( Но можно посмотреть исходники.
uint8_t i8; //индекс 8-битного массива
// Получим указатель на свободную область
// на выходе: последний записанный байт
uint8_t init_ee_array8(uint8_t *array, uint8_t array_max)
{
uint8_t i;
for (i = 0; i < array_max; i++)
if (eeprom_read_byte(&array[i]) == 0xff)
break;
i < array_max ? i8 = i : i8 = 0;
return eeprom_read_byte(&array[i8 ? i8 - 1 : array_max - 1]);
}
// Запишем данные по указателю с последующим его увеличением
void write_ee_array8(uint8_t *array, uint8_t array_max, uint8_t data)
{
uint8_t i = i8;
if (++i8 >= array_max)
i8 = 0;
eeprom_erase_only(&array[i8]); //0xff - признак последней записи
eeprom_write_only(&array[i], data);
}
Что-то я побитной записи не наблюдаю.
Ну, побитно то и не запишешь. Нужно байт считать добавить НУЛЕВОЙ бит и записать. Или нет?
Так можно побитно писать или нет? ))
Если устраивать качели с чтением/установкой/записью, то это какая-то китайская экономия выходит…
Григорий, ты прикалываешься? Ну посмотри даташит на мегу88 и выше. Они позволяют писать без стирания, в отличие от мега8.
Китайская экономия позволяет увеличить ресурс записи-стирания.
Именно побитно?
Меня конкретно этот вариант заинтересовал.
Ну конечно. Изначально там FF. Ну и нулевые биты ты дописываешь.
Не поленился, посмотрел. Битами не пахнет:
7.4 EEPROM Data Memory The Atmel® ATmega328P contains 1Kbyte of data EEPROM memory. It is organized as a separate data space, in which single bytes can be read and written.
Биты, байты… Разница всего в двух буквах.
Что не пахнет?!
Table 7-1. EEPROM Mode Bits
EEPM1 EEPM0 Programming Time Operation
0 0 3.4 ms Erase and Write in one operation (Atomic Operation)
0 1 1.8 ms Erase Only
1 0 1.8 ms Write Only
1 1 – Reserved for future use