Ревич, Ю.В. Программирование микроконтроллеров AVR: от Arduino к ассемблеру

378 Часть 111. Практическое программирование микроконтроллеров А VR Таблица 14. 1 . Задание интервалов срабатывания классического WDT Классический сторожевой таймер, freн = 1 МГц Биты WDP2 : 0 ООО 0 0 1 0 1 0 0 1 1 �---- --- - К. деления fген 2 1 4 ( 1 6 384) 2 1 5 (32 768) 2 1 6 (65 536) 2 1 7 ( 1 31 072) ---- ---- - -- Интервал 1 6 мс 32 , 5 мс 65 мс 1 30 мс БИТЫ WDР2 : 0 1 00 1 0 1 1 1 0 1 1 1 -----·---�·- К. деления fген 2 1 8 (262 1 44) 2 1 9 (524 288) 2 2 0 (1 048 576) 2 2 1 (2 097 1 52) Интервал 0,26 с 0 , 52 с 1 , 0 с 2 , 1 с Таблица 14.2. Задание интервалов срабатывания расширенного WDT Расширенный сторожевой таймер, fген = 1 28 кГц Биты WDРЗ : О 0000 0001 0 0 1 0 0 0 1 1 0 1 00 -· К. деления fген 2 1 1 (2048) 2 1 2 (4096) 2 1 3 (81 92) 2 14 ( 1 6384) 2 1 5 (32768) Интервал 1 6 МС 32 МС 64 МС 1 25 мс 250 мс - БИТЫ WDРЗ : О 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 К. деления fген 2 1 6 (65 536) 2 1 7 ( 1 3 1 072) 2 1 8 (262 1 44) 2 1 9 (524 288) 2 20 (1 048 576) -· Интервал 0 , 5 с 1 , 0 с 2 , 0 с 4 , 0 с 8 , 0 с Наконец, остановить запущенный WDT во всех случаях позволяет следующая про­ цедура (листинг 1 4 . 5) . cli wdr ldi tmp , ( l«WDCE ) 1 ( l«WDE ) out WDTCR , tmp ldi tmp , ( O«WDE ) out WDTCR, tmp sei ПОДРОБНОСТИ Если вдруг вам понадобится менять временн6й интервал уже включенного WDT по ходу программы, то для этого в описаниях рекомендуется более сложная процедура, когда сначала содержимое WDTCR извлекается в регистр общего назначения, потом в нем устанавливаются нужные биты , а затем результат опять выгружается в WDTCR: in temp, WDTCR ori temp, ( l«WDCE ) 1 ( l«WDE ) out WDTCR, temp

RkJQdWJsaXNoZXIy MTExODQxMg==