Для записи переменных в EEPROM рекомендуеться использовать функции eeprom_write_хххх, а для перезаписи/обновления eeprom_update_хххх. Есть такой код:
#include <avr/eeprom.h>
//Переменные хранящиеся в EEPROM памяти MCU
uint8_t eeFooByte EEMEM;
uint16_t eeFooWord EEMEM;
int main ( void )
{
//Переменные для хранения значений из EEPROM в SRAM
uint8_t myByte;
uint16_t myWord;
//Считываем значения из EEPROM
myByte = eeprom_read_byte(&eeFooByte);
myWord = eeprom_read_word(&eeFooWord);
//Записываем новых значения в EEPROM
if ( myByte == 0х00 ) {
myByte = 254;
eeprom_write_byte(&eeFooByte, myByte);
}
else {
myByte = 254;
eeprom_update_byte(&eeFooByte, myByte);
}
if ( myWord == 0х000 ) {
myWord = 65500;
eeprom_write_word(&eeFooWord, myWord);
}
else {
myWord = 65500;
eeprom_update_word(&eeFooWord, myWord);
}
}
Правильно ли я делаю проверку есть ли значения переменных myByte и myWord в EEPROM?