Статус:
Offline
Реєстрація: 29.10.2006
Повідом.: 5578
Реєстрація: 29.10.2006
Повідом.: 5578
- 🟠 12:55 Загроза ударних БпЛАЗагроза БпЛА типу «Молнія»#м_Харків_та_Харківська_територіальна_громада
- #1
Граждане, столкнулся с необходимостью использования внешнего прерывания INT0.
Девайс - TINY2313 + AVR Studio + для проверки дебаггер AVR DRAGON..
Так вот, программка маленькая, испытательная..
Прерывания в конце тела программы разрешаю коммандой sei, далее замкнутый цикл для ожидания прерывания. Дракон показывает наличие спада фронта на PD2(INT0), но программа не переходит в обработчик прерывания!
Кто подскажет, что за фигня такая?
ЗЫ PD2 управляет ИК приемник, посыл, соответственно с пульта ДУ. В обработке прерывания банально должны зажечься светодиоды на портах РВ (программка набросана просто для понимания INT0).
Может кто подскажет? Я своего добьюсь, но хотелось бы помощи "для ускорения" процесса..
.include "tn2313def.inc"
.def Const=r16
.def Const1=r17
.def Const2=r18
.def Const3=r19
.cseg
.org 0
rjmp RESET ; Reset Handler
rjmp INT0 ; External Interrupt0 Handler
rjmp INT1 ; External Interrupt1 Handler
rjmp TIM1_CAPT ; Timer1 Capture Handler
rjmp TIM1_COMPA ; Timer1 CompareA Handler
rjmp TIM1_OVF ; Timer1 Overflow Handler
rjmp TIM0_OVF ; Timer0 Overflow Handler
rjmp USART0_RXC ; USART0 RX Complete Handler
rjmp USART0_DRE ; USART0,UDR Empty Handler
rjmp USART0_TXC ; USART0 TX Complete Handler
rjmp ANA_COMP ; Analog Comparator Handler
rjmp PCINT ; Pin Change Interrupt
rjmp TIMER1_COMPB ; Timer1 Compare B Handler
rjmp TIMER0_COMPA ; Timer0 Compare A Handler
rjmp TIMER0_COMPB ; Timer0 Compare B Handler
rjmp USI_START ; USI Start Handler
rjmp USI_OVERFLOW ; USI Overflow Handler
rjmp EE_READY ; EEPROM Ready Handler
rjmp WDT_OVERFLOW ; Watchdog Overflow Handler
reset:
ldi const, 0b11111111
out ddrb, const
ldi const, 0b00000000
out ddrd, const
ldi const, 0b11111111
out portd, const
sei
data:
Rjmp data
INT_0:
ldi const,0b11111111
out portb, const
INT_1: ; External Interrupt1 Handler
TIM1_CAPT: ; Timer1 Capture Handler
TIM1_COMPA: ; Timer1 CompareA Handler
TIM1_OVF: ; Timer1 Overflow Handler
TIM0_OVF: ; Timer0 Overflow Handler
USART0_RXC: ; USART0 RX Complete Handler
USART0_DRE: ; USART0,UDR Empty Handler
USART0_TXC: ; USART0 TX Complete Handler
ANA_COMP: ; Analog Comparator Handler
PCINT: ; Pin Change Interrupt
TIMER1_COMPB: ; Timer1 Compare B Handler
TIMER0_COMPA: ; Timer0 Compare A Handler
TIMER0_COMPB: ; Timer0 Compare B Handler
USI_START: ; USI Start Handler
USI_OVERFLOW: ; USI Overflow Handler
EE_READY: ; EEPROM Ready Handler
WDT_OVERFLOW: ; Watchdog Overflow Handlerreti
reti
Девайс - TINY2313 + AVR Studio + для проверки дебаггер AVR DRAGON..
Так вот, программка маленькая, испытательная..
Прерывания в конце тела программы разрешаю коммандой sei, далее замкнутый цикл для ожидания прерывания. Дракон показывает наличие спада фронта на PD2(INT0), но программа не переходит в обработчик прерывания!

Кто подскажет, что за фигня такая?
ЗЫ PD2 управляет ИК приемник, посыл, соответственно с пульта ДУ. В обработке прерывания банально должны зажечься светодиоды на портах РВ (программка набросана просто для понимания INT0).
Может кто подскажет? Я своего добьюсь, но хотелось бы помощи "для ускорения" процесса..

.include "tn2313def.inc"
.def Const=r16
.def Const1=r17
.def Const2=r18
.def Const3=r19
.cseg
.org 0
rjmp RESET ; Reset Handler
rjmp INT0 ; External Interrupt0 Handler
rjmp INT1 ; External Interrupt1 Handler
rjmp TIM1_CAPT ; Timer1 Capture Handler
rjmp TIM1_COMPA ; Timer1 CompareA Handler
rjmp TIM1_OVF ; Timer1 Overflow Handler
rjmp TIM0_OVF ; Timer0 Overflow Handler
rjmp USART0_RXC ; USART0 RX Complete Handler
rjmp USART0_DRE ; USART0,UDR Empty Handler
rjmp USART0_TXC ; USART0 TX Complete Handler
rjmp ANA_COMP ; Analog Comparator Handler
rjmp PCINT ; Pin Change Interrupt
rjmp TIMER1_COMPB ; Timer1 Compare B Handler
rjmp TIMER0_COMPA ; Timer0 Compare A Handler
rjmp TIMER0_COMPB ; Timer0 Compare B Handler
rjmp USI_START ; USI Start Handler
rjmp USI_OVERFLOW ; USI Overflow Handler
rjmp EE_READY ; EEPROM Ready Handler
rjmp WDT_OVERFLOW ; Watchdog Overflow Handler
reset:
ldi const, 0b11111111
out ddrb, const
ldi const, 0b00000000
out ddrd, const
ldi const, 0b11111111
out portd, const
sei
data:
Rjmp data
INT_0:
ldi const,0b11111111
out portb, const
INT_1: ; External Interrupt1 Handler
TIM1_CAPT: ; Timer1 Capture Handler
TIM1_COMPA: ; Timer1 CompareA Handler
TIM1_OVF: ; Timer1 Overflow Handler
TIM0_OVF: ; Timer0 Overflow Handler
USART0_RXC: ; USART0 RX Complete Handler
USART0_DRE: ; USART0,UDR Empty Handler
USART0_TXC: ; USART0 TX Complete Handler
ANA_COMP: ; Analog Comparator Handler
PCINT: ; Pin Change Interrupt
TIMER1_COMPB: ; Timer1 Compare B Handler
TIMER0_COMPA: ; Timer0 Compare A Handler
TIMER0_COMPB: ; Timer0 Compare B Handler
USI_START: ; USI Start Handler
USI_OVERFLOW: ; USI Overflow Handler
EE_READY: ; EEPROM Ready Handler
WDT_OVERFLOW: ; Watchdog Overflow Handlerreti
reti