Alexeyslav писал(а):Обрати внимание еще на флаг I в регистре статуса, может у тебя глобальные прерывания запрещены?
Нет. Помимо этого прерывания в проге есть прерывание по переполнению таймера, которое генерится с частотой 31,25 кГц и тактирует прогу. Я пробовал ставить точку останова в этом прерывании - на нее прога вылетает. А вот на точку останова в прерывании ватчдога - нет. На скриншоте видно, что прога работала значительное время - 0,6 "микроконтроллерных" секунды (симуляция не совсем в реал-тайме идет). В реале я и больше держал.
Еще что странно - что все время ватчдог не срабатывает не ресет. Обычно, когда пишешь прогу и забываешь поставить команду wdr, в этом окне сообщений начинает бежать куча фраз по каждому ресету от ватчдога.
Студией я пользуюсь редко, там вроде даже Си не по умолчанию ставится. Эта прога написана в IAR AVR. Листинг с ассемблером просмотрел - вктор прерывания правильный, команды на месте. Может глюк Протеуса?
***
Что-то вообще ерунда какая-то... В протеусе даже простой резет не наблюдается - ни при программной установке WDE, ни при установке фьюза WDTON.
Пипец кароче...
Взял написал тупо на асме в АВР студио:
Код: Выделить всё
ldi temp1, 0x18
out WDTCR, temp1
ldi temp1, (1<<WDE)|(1<<WDIE)
out WDTCR, temp1
cbi PORTB,0
sei ;разрешение прерываний
main:
inc R16
rjmp main
watch:
ldi R18,7
reti
Не пашет!!!

1 раз пишет ту самую фразу, но на прерывание не выходит. Вектор, разумеется, объявлен, 18-й строчкой от начала cseg.
Когда пишу инициализацию вида:
Код: Выделить всё
ldi temp1, 0x18
out WDTCR, temp1
ldi temp1, (1<<WDE)
out WDTCR, temp1
Ватчдог ресетит проц как ему и положено через каждые 16 мс. Я в ах*е уже...
И главное, статья есть по теме:
http://gendocs.ru/v256/?cc=13
Написано, что для включения вроде вообще не обязательно 2 2 приема записывать в WDTCR.
Попробовал - Протеус пишет, что таймаут настройки ватчдога истек. Конфигурация не изменениа - вообще ватчдог не пашет(((
Пробовал по разному. Висит флаг прерывания от ватчдога (последний бит (WDIF) в регистре WDTCR), но на обработчик проц не выходит! То же самое творится если прогнать прогу в АВР Студио