ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
22 ноября
2051
SAA (23.12.2003 03:34, просмотров: 1484)
Просветите новичка АТТайни12 прерывания По какой причине в нижеследующей программе я всегда "верчусь" в прерывании (вижу по светодиоду на выводу тайни)?:
.include "tn12def.inc"
.equ led =1 ;red LED
.def temp =r16 ;general scratch space

;****Source code***************************************************
.cseg ;CODE segment
.org 0
rjmp reset ; Reset handler
reti ; IRQ0 handler
rjmp PinCh ; Pin change handler
reti ; Timer0 overflow handler
reti ; EEPROM Ready handler
reti ; Analog Comparator handler

;*** Reset handler **************************************************
reset:

ldi temp,0x0 ;turn on sleep mode and power
out MCUCR,temp ;down plus interrupt on low level.
ldi temp,0x0 ;
out MCUSR,temp ;clear MCUSR.
ldi temp,0x0 ;
out WDTCR,temp ;disable watchdog timer.
sbi ACSR,ACD ;shut down comparator to save power
ldi temp,0x20 ;PCIE enabled
out GIMSK,temp ;all OUT except PB1 led and PB3 - beeper.
sbi DDRB,led ;all OUT except PB1 led and PB3 - beeper.
main:
ldi temp,0xff ;pull up all PORTB pins
out PORTB,temp ;
sei ;set global interrupt enable
sleep ;enter sleep, waiting for interrupt
rjmp main ;go back to sleep after keyscan

;*********************PCI subrouting--------------------------------************
PinCh:
cli ; disable all interrupts
cbi PORTB,led ;flash the LED - set bit
sbi PORTB,led ;flash the LED - set bit
reti ;go back to sleep after keyscan