Добавлено after 5 minutes 5 seconds:
И дело не только в симуляторе. Я на железе проверяю. Нет захода в обработчик.
Код: Выделить всё
.ORG 0x06
; обаработчик прерывания при сравнении
TIM0_COMPA:
nop
reti
Start:Код: Выделить всё
.include "tn13def.inc";
.def temp = r16
.cseg
.org 0
rjmp Start ; Переход на начало программы
reti
reti
reti
reti
reti
rjmp TIM0_COMPA ; Прерывание по совпадению
reti
reti
reti
; обаработчик прерывания при совпадении
TIM0_COMPA:
nop
reti
/*; обаработчик прерывания при переполнении счётчика
TIM0_OVF:
nop;
reti;*/
Start:
; инциализация стека
ldi temp, low(RAMEND);
out SPL, temp ; Set Stack Pointer to top of RAM
clr temp
; режим сравнения (CTC)
ldi temp, 0b00000010;
out TCCR0A, temp
clr temp;
out TCNT0, temp; начальное значение счётчика
;устанавливаем биты разрешения прерывания 0-ого счетчика
ldi temp, 0b00000100; прерывание при совпадении с OCR0A
out TIMSK0, temp;
;значение для сравнения
clr temp;
ldi temp, 0x1E;
out OCR0A, temp;
;разрешить глобальные прерывания
sei;
;предделитель тактовой частоты (старт таймера)
ldi temp, 0b00000010;
out TCCR0B, temp;
Cicle:
nop
nop
nop
rjmp CicleКод: Выделить всё
ldi temp, 0b00000010;
out TCCR0B, temp;