Ошибка Proteus при отмене прерывания в AVR
Проблема состоит в ошибке Proteus, что вылетает в результате отмены прерывания в теле функции обработчика прерываний.
Если знаете, подскажите пожалуйста как с ней боротся.
.device ATtiny13
.INCLUDE "tn13def.inc"
.DEF temp=r16
.DEF temp1=r17
.DEF CBit=r18
.DEF SendByte=r0
.EQU TXD=4
.EQU RXD=0
.CSEG
.ORG 0
rjmp RESET ;Reset
.ORG $02
rjmp ExtIntReq ;External Interrupt Request
.ORG $06
ijmp ;Timer/Counter0 Compare Match A
.ORG INT_VECTORS_SIZE
RESET:
; инициализация стека
ldi temp,ramend
out SPL,temp
;инициализация порта b
ldi temp,0b00000001
out DDRB,temp
sbi portb,TXD
;установка прерывание по изменению PB0
ldi temp,$01
out PCMSK,temp
ldi temp,$20
out GIMSK,temp
.............................
sei
Func:
rjmp Func
...................
ExtIntReq:
sbic PINB,RXD
reti
ldi r30,low(Delay_Resive)
ldi r31,high(Delay_Resive)
clr SendByte
ldi temp1,$06
out TCCR0B,temp1
ldi temp1,$00
out GIMSK,temp1
reti
......................
Resive_Byte:
......
ldi r30,low(TimerCompareA)
ldi r31,high(TimerCompareA)
ldi temp1,$20
out GIMSK,temp1
reti
..........
Вот сам глюк
|