Группа: Участник
Сообщений: 96
Регистрация: 12-05-10
Пользователь №: 57 217
К контроллеру подключены разные микросхемы. В коде есть пара циклов которые могут зависнуть если эти микросхемы вдруг откажут. вероятность очень маленькая но есть. Простая перезагрузка не выход. так как перезагрузка контроллера может нарушить работу устройств которые с ним связаны ну вообще не желательно. так же хотелось бы чтоб устройство себя могло сдиагностировать.
пришел к выводу что IWDT не выход. у STM есть WWDT, который имеет свое прерывание и накладывание этого таймера на циклы которые могут повиснуть очень удобно. Вот у меня возник вопрос как им пользоваться. ну как настроить и запустит тут все ясно. Но вот повис цикл у меня. WWDT досчитал до 0 и вызвал прерывание. Что делать в прерывании чтоб выйти из повисшего цикла.
Думаю можно сделать какой нить глобальный регистр с битами. выставлять соотвествующий бит перед заходом в цикл и сбрасывать после выхода. В прерывании по этим битам определять какой цикл и изменяет значения так чтоб программа вывалилась из цикла.