ВУЗ:
Составители:
программно и WDTON=0 – сторожевой таймер включен постоянно и не может
быть выключен. Разряд WDE всегда читается как 1.
Уровень 1. WDTON=1.
Выключение. Для выключения таймера записать одной командой логическую
1 в разряды WDE и WDCE и в течение следующих четырех машинных тактов за-
писать логический 0 в разряды WDE и WDCE
Установка. Для установления периода тайм-аута надо одной командой запи-
сать логическую 1 в разряды WDE и WDCE и в течение следующих четырех
тактов записать в WDE логическую 1, в WDCE - логический 0, в WDP3…0 – тре-
буемые значения.
Уровень 2. WDTON=0.
Для изменения тайм-аута надо одной командой записать логическую 1 в раз-
ряды WDE и WDCE и в течение следующих четырех тактов записать требуемые
значения в WDP3…0, одновременно сбрасывая разряд WDCE.
Разряды WDIF, WDIE определяют реакцию на прерывания. Перед началом
установки тайм-аута необходимо сбросить сторожевой таймер командой WDR.
Пример фрагмента программы включения сторожевого таймера на 4 с. (Уро-
вень 1).
Wdr
Ldi tmp,0b00011000; WDCE=1, WDE=1.
Out wdtcr,tmp
Ldi tmp,0b00101000 ; WDE=1, WDCE=0, WDP3…0=1000
Out wdtcr,tmp
Пример выключения сторожевого таймера (Уровень 1).
Wdr
Ldi tmp,0b00011000 ; WDE=1, WDCE=1
Clr tmp
Out wdtcr,tmp ; WDE=0, WDCE=0
2.18. Создание двух задержек 0,5 мс и 500 мс
c помощью регистров X, Y
Запишем задержки в две подпрограммы. Причем вторая подпрограмма будет
использовать первую.
Rcall d05ms ; вызов подпрограммы задержки 0,5 мс
.
.
.
Rcall d500ms ; вызов подпрограммы задержки 500 мс
.
.
.
; подпрограмма задержки на 0,5 мс
D05ms:
Wdr
52
Страницы
- « первая
- ‹ предыдущая
- …
- 50
- 51
- 52
- 53
- 54
- …
- следующая ›
- последняя »