Решил использовать WDT как источник прерывания. Написал вот так:
Код
.INCLUDE "tn2313def.inc"
.CSEG
.ORG 0
rjmp Reset
.ORG WDTaddr
rjmp Led
Reset:
ldi r30,low(RAMEND)
out SPL,r30
ldi r30,$03 ; настройка направления работы линий порта B
out DDRB,r30; 1 и 2-й биты выходы, остальные - входа.
;wdr
ldi r30,$56
;out WDTCR,r30
sei ; разрешаем прерывания
Loop:
rjmp Loop
Led:
ldi r30,$02
eor r29,r30
out PORTB,r29
reti
.EXIT
.CSEG
.ORG 0
rjmp Reset
.ORG WDTaddr
rjmp Led
Reset:
ldi r30,low(RAMEND)
out SPL,r30
ldi r30,$03 ; настройка направления работы линий порта B
out DDRB,r30; 1 и 2-й биты выходы, остальные - входа.
;wdr
ldi r30,$56
;out WDTCR,r30
sei ; разрешаем прерывания
Loop:
rjmp Loop
Led:
ldi r30,$02
eor r29,r30
out PORTB,r29
reti
.EXIT
Должно было мигать светодиодом каждую секунду.
Не получилось. Что я сделал не так?