в Атмеловском загрузчике поменял строчку AT91C_BASE_WDTC->WDTC_WDMR = AT91C_WDTC_WDDIS; на AT91C_BASE_WDTC->WDTC_WDMR = AT91C_WDTC_WDV | AT91C_WDTC_WDD | AT91C_WDTC_WDRSTEN;
в самой программе периодически сбрасываю таймер: AT91C_BASE_WDTC->WDTC_WDCR = AT91C_WDTC_KEY | AT91C_WDTC_WDRSTT;
Проверял, если не сбрасывать таймер, то он перезапускает контроллер. Все как и должно быть. Но в программе, которую я использую, он не всегда срабатывает. То есть существуют ситуации, когда контролер зависает, и перезапускается только через пару часов. Такое может быть или же watchdog срабатывает всегда и я что-то не так делаю?
|