ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
30 июня
280357 Топик полностью
Acvarif (26.10.2011 18:01, просмотров: 248) ответил MegaJohn на дык поделитесь примера кода, результами, наблюдениями, записями, сносками, примечаниями.
Пример кода. void WDT_on(void) { /* Write logical one to WDCE and WDE */ WDTCR = (1<<WDCE) | (1<<WDE); /* Turn on WDT */ (0.9 сек) WDTCR = (1<<WDE) | (1<<WDP1) | (1<<WDP2); } В маин делаю WDT_on(); У мен связь с прибором по USART (Modbus). Каждые 0.5 (прерывания по Т0) сек даю запоросы на прибор. Принимаю ответы по прерывани USART. В подпрограмме прерываний ставлю __watchdog_reset(); Надеюсь на то, что когда прибор перестанет отвечать WDT сделает полный перезапуск программы с 000 прибор инициализируется и опять начнет отвечать. Моделирую ситуацию. WDT срабатывает, но... не помогает. Помогает только аппаратный сброс.