[an error occurred while processing this directive]
[an error occurred while processing this directive]
|
... пишем спокойненько программу, инициализируем WDT на необходимый временной промежуток.
Далее, если в программе имеется основной цикл без всяких там остановов, то вставляем команду сброса WDT в него, а если основной цикл ждет там отзывы от портов и т.п., то для "мобильного" девайса подходит другой способ, в обработчике прерывания по таймеру, где чаще всего идут всякие там опросики клавиатуры и т.п. ставим команду сброса WDT, но в этом втором способе надо быть поосторожней, так как програмка может зависнуть, а таймерочек останется на ходу и весь эффект в попу к дьяволу, извините.
Теперь поясняю, как сделать девайс, а именно ВКЛ./ВЫКЛ. вначале проги стоят функции "усыпления", далее по прерыванию от клавиши ВКЛ./ВЫКЛ. устройство заводится, включается WDT, девайс работает, происходит сбой, WDT сбрасывает проц и прибор усыпает, что бы отдельно не писать функции усыпления не от сбоя, а от клавиатуры, делаем след. программируем "сторожевик" не на большое время (т.е. мало значимое для юзера до 0.5 сек) и отрабатываем клавиши, если клавиша ВКЛ./ВЫКЛ. была нажата в течении какого-то временного промежутка, то команду сброса WDT не выполняем, и опять же девайс усыпает...
Ну и как везде здесь есть тонкости, ну теперь давайте cпециалисты "узкого" профиля, бить меня что-ли!!! :-)))
E-mail: info@telesys.ru