Системный параметр RestartReason

Общие вопросы по оборудованию и программному обеспечению Компании ДЭП
IljaEl
Сообщения: 27
Зарегистрирован: 12 янв 2016, 14:40
Откуда: mupptpgh

Сообщение IljaEl » 29 май 2019, 10:56

Алгоритм (BYTE b_tmp; b_tmp=SystemInfo.RestartReason; DiscretWrite(1,b_tmp); ) после рестарта контроллера А9 с помощью кнопки RESET выдаёт 0 , хотя по описанию в файле power.h должен выдать 2. В результате нельзя отличить причину рестарта при пропадании питания (которая должна выдать 0) , от рестарта после нажатия кнопки! Может не правильно считываю причину рестарта ? Если всё правильно , то каким способом можно отличить причину рестарта контроллера ?

dws
Администратор
Сообщения: 102
Зарегистрирован: 29 май 2009, 13:45
Откуда: Компания ДЭП
Контактная информация:

Сообщение dws » 29 май 2019, 16:24

Выдержка из справки по системным параметрам
516 Причина перестарта. Код последней причины перезапуска контроллера:
0 - пропадание питания и для контроллера Decont-A9 кнопка сброс;
2 - по кнопке сброса контроллера (только для контроллера Decont-182);
3 - сработал охранный таймер (WatchDogTimer);
4 - закончилась процедура переливки или копрессии РПЗУ;
5 - ошибка ядра;
16 - нормальный запрос от программного обеспечения;
17 - запрос от программного обеспечения при ошибках.

Так что, да, для A9 пропадание питания и нажатие кнопки этим параметром не различаются.

IljaEl
Сообщения: 27
Зарегистрирован: 12 янв 2016, 14:40
Откуда: mupptpgh

Сообщение IljaEl » 30 май 2019, 08:24

А как мне отличить сброс по кнопке от пропадания питания на А9 ?

dws
Администратор
Сообщения: 102
Зарегистрирован: 29 май 2009, 13:45
Откуда: Компания ДЭП
Контактная информация:

Сообщение dws » 30 май 2019, 18:17

Рестарт по кнопке физически эквивалентен рестарту по питанию, поэтому никак не различается.