есть программа для измерения частоты на входе МК atmega8515.
.include "m8515def.inc"
.list
;
.cseg
;
.def temp =r16
.def new =r17
.def old =r18
;XL=26 XH=27
;
rjmp Init
Init:
.org $0005
rjmp tim1
clr new
clr old
clr XL
clr XH
clr temp
ldi temp,0b00001000
out TIMSK, temp
ldi temp,7
out OCR1AH,temp
ldi temp,83
out OCR1AL,temp
clr temp
out TCNT1H,temp
out TCNT1L,temp
ldi temp,0b00000100
out TCCR1B,temp
ldi temp,LOW(RAMEND)
out SPL,temp
ldi temp,HIGH(RAMEND)
out SPH,temp
ldi temp,0b00000000
out DDRA,temp
sei
schet_1:
in new,PinA
com old
and old,new
sbrc old,0
adiw XL,1
mov old,new
rjmp schet_1
tim1:
ldi temp,0
Wait_uart_00:
sbis ucsra,udre
rjmp Wait_uart_00
out udr,temp
Wait_uart_10:
sbis ucsra,udre
rjmp Wait_uart_10
out udr,XL
Wait_uart_20:
sbis ucsra,udre
rjmp Wait_uart_10
out udr,XH
clr temp
clr XL
clr XH
out TCNT1H,temp
out TCNT1L,temp
sei
rjmp schet_1
При симуляции программа зависает на этом месте
schet_1:
in new,PinA
com old
and old,new
sbrc old,0
adiw XL,1
mov old,new
rjmp schet_1
Верна ли программа и как правильно настроить прерывание таймер-счетчика?



