|
|
  |
слетает память у Atmega16, слетает память у Atmega16 |
|
|
|
Sep 28 2013, 10:52
|
Участник

Группа: Участник
Сообщений: 49
Регистрация: 30-10-07
Пользователь №: 31 879

|
Цитата(ArtemKAD @ Sep 28 2013, 13:25)  Это как? Процедура в программе есть или ее нет? Как определяется "Один раз при выпуске." Может быть подпрограмма для записи в EEPROM, которую можно вызвать только 1 раз.
|
|
|
|
|
Sep 28 2013, 13:15
|
Участник

Группа: Участник
Сообщений: 49
Регистрация: 30-10-07
Пользователь №: 31 879

|
Цитата(ArtemKAD @ Sep 28 2013, 15:06)  Для того, что-бы "можно вызвать только 1 раз" нужен энергонезависимый признак того, что этот 1 раз уже был. Вопрос и состоит в том, что это за признак? Например, число читаемое из EEPROM.
|
|
|
|
|
Sep 28 2013, 13:32
|
Гуру
     
Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295

|
Цитата(messenger @ Sep 28 2013, 16:16)  Думаете есть вероятность того, что при подаче вполне определенных команд появилоась помеха начинающаяся командой и заканчивающаяся кодовым словом? Есть, безусловно. Если в программу заложена подобная "бомба замедленного действия", то она, как правило, взорвется, рано или поздно. CRC всей командной посылки и блока данных, включая кодовое слово, как я понял, не проверяется ?
|
|
|
|
|
Sep 29 2013, 09:51
|
Местный
  
Группа: Участник
Сообщений: 361
Регистрация: 23-03-07
Пользователь №: 26 457

|
Цитата(kovigor @ Sep 29 2013, 01:00)  Вы про защиту команд и данных с помощью CRC так и не ответили. Есть она ? Если нет, то банальный "мусор", принимаемый при переключении разъемов или плохом контакте в них может дать самые неожиданные и загадочные эффекты ... такое кодирование не делаю
|
|
|
|
|
Sep 30 2013, 04:38
|

Профессионал
    
Группа: Свой
Сообщений: 1 143
Регистрация: 30-09-08
Из: Новочеркасск
Пользователь №: 40 581

|
Цитата(kovigor @ Sep 29 2013, 16:04)  Тогда все ясно ... да ничего на самом деле не ясно. в практике с AT89S53 у меня был пренеприятный случай, когда в процессе эксплуатации с периодичностью примерно раз в 4-6 месяцев в EEPROM слетала 1 ячейка - строго определенная, и слетала всегда в строго определенное значение. Процедур записи в эту ячейку в коде не было вообще - EEPROM писалась 1 раз программатором, в коде только чтение. никакие аппаратные меры не помогали. после долгих мытарств пришлось уйти на AVR и для страховки писать все настроечные константы во FLASH - помогло. в случае топикстартера могу порекомендовать 2 варианта борьбы с бедой: 1. хранить в EEPROM 3 копии калибровочных констант, при старте программы считывать по мажоритарному принципу. 2. поступить так, как сделал я: калибровочные константы писать только программатором во FLASH, исключив из кода принципиальную возможность записи.
--------------------
Я бы взял частями... но мне надо сразу.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|