ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
5 мая
91777
xanoy (15.06.2007 14:18, просмотров: 42501)
Вопрос по WitchDog. Как лутше сбрасывать. Три года назад, когда возникла потребность в использовании стороживого таймера, из многих вариантов я выбрал следующий вариант: Создается флаг, например WDG_f, который указывает нужно ли сбрасывать WatchDog или нет. И этот флаг устанавливается после выполнения критичного к зависанию кода. <c> void identification(void) { .................. test_mobil() WDG_f =1; ........................ } </c> А сбрасывается данный флаг вместе с сбросом WatchDog, в прерывании системного таймера. <c> #pragma vector = TIMER0_COMP_vect __interrupt void TIMER_0 (void) { if (WDG_f) { _WDR(); WDG_f = 0; } ++tick; if (tick - _sys_now > TIMEOUT) { _sys_now = tick; } } </c> Проблема в том что я не могу вспомнить чем этот метод хорош, а чем плох.Может есть лутшие варианты?