Boвa (12.01.2019 17:48 - 23:53, просмотров: 362) ответил AlexG на когда МК работает при нештатном напряжении питания это вы считаете что там записи нет, а реально может совсем по другому получиться
Контроллер при сбое тактирования может случайно забежать в функцию записи в ЕЕPROM, и выполнить запись того мусора который есть в стеке, но вероятность этого можно снизить если в начале функции записи проверять специальную переменную в ОЗУ. Если в переменной EEPROM_WR код отличается от ключевого (например от 0x5A), то игнор записи. В процессе записи переменная EEPROM_WR сразу же сбрасывается в 0.
void EEPROM_write(unsigned int uiAddress, unsigned char ucData)
{
if(EEPROM_WR!=0x5A)
{NaLamansh();}// какой-нибудь код для приведения контроллера в
// адекватное состояние или джамп на ресет
else {
EEPROM_WR=0;
...//код записи в EEPROM
}
}
Естественно перед вызовом функции записи следует каким-то образом устанавливать переменную EEPROM_WR (желательно замысловатым).
Хотя конечно никакой гарантии от сбоев все равно нет.