[an error occurred while processing this directive]
Как сбрасывать WATCHDOG в AT90S2313?
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено PMV 30 августа 2002 г. 00:32

Вопрос, конечно дурацкий, но что я делаю не правильно?
В DataSheet написано:
1. Одной командой записать 1 в WDTOE и WDE. Единица в WDE должна записываться даже в том случае если этот бит был установлен перед началом процедуры остановки таймер
2. В течение следующих четырех тактов процессора необходимо записать в WDE логический 0, при этом работа сторожевого таймера запрещается!!!!!!

WATCHDOG инициализируется следующим образом:
// Watchdog Timer initialization
// Watchdog Timer Prescaler: OSC/16
WDTCR=0x08;

Далее по переполнению таймера 0 каждые 5 мс выполняется следующая последовательность команд:
#asm
LDI R30,LOW(24)
LDI R31,LOW(0) //Делал и LDI R31,LOW(16)
OUT 0x21,R30
OUT 0x21,R31
NOP
NOP
NOP
NOP
NOP
LDI R30,LOW(8)
OUT 0x21,R30
#endasm
Пробовал вариант без NOP, но и в том и в другом случае WATCHDOG сбрасывал процессор с периодом 16 мс (питание 5 В).
Так где же я не прав?

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru