Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс. e-mail:jobsmp@pochta.ru |
1) Сброс Watchdog-таймера как правило осуществляется в обработчике прерываний таймера {время же внутри проца как-то надо отсчитывать, чтобы знать в какой момент ресетить Watchdog}. Но!!! Основная программа может зависнуть при том, что обработчики прерываний будут работать нормально и регулярно ресетить Watchdog. Вы скажете: не надо сбрасывать Watchdog где потенциально может возникнуть "вечный" цикл. Но иногда бывает очень трудно разглядеть "вечный" цикл, который возникает только при определённых наборах данных и который "захватывает" и команду ресета Watchdog-таймера.Так что опять мимо. Нет. Конечно прок от Watchdog-а какой-то всё же есть. Но.. Таким образом, Watchdog контролирует временную логику работу процессора только отчасти.
2) О ресете процессора.
При ресете большинство узлов проца принудительно возвращается в исходное состояние и проц принудительно возвращается на начало программы. Конечно в этом есть определённый смысл если внешняя схема обнаружила нарушения в работе проца..Но...Опять но..Все Вы наверное слышали про тиристорное защёлкивание..Очень часто приходится слышать такую фразу: "и помогает только выключение питание на достаточное продолжительное время"..Т.е. иногда ресета бывает недостаточно. Чтобы "расщёлкнуть" защёлкнувшиеся тиристорные структуры нужно выключить питание и ждать пока "сдуются" все микроёмкости в микроконтроллере. А это время может составлять 30 и более секунд.
Так что...Опять мимо..
Теперь я хочу сказать о своих мыслях, т.е. в каком направлении "рою" я.
Во-первых, хочу сделать ключ на ждущем мультивибраторе, который не ресетит проц, а вырубает питание на достаточно продолжительное время.
Во-вторых, хочу чтобы микроконтроллер периодически выплёвывал во внешнюю схему код состояния в котором он ща перешёл..А внешняя схема, "знающая" логику работы программы, контролировала допустимость каждого перехода..И если что-то не так - импульс на ждущий мультивибратор и далее выключение питания на 30 и более сек {т.е. так называемый "холодный" сброс}.
А что вы, Господа, думаете по этому поводу???
Как вы решаете проблему контроля работы процессора???