Hallo liebe Forumfreunde.
ich versuche verzweifelt ein Interrupt an PB4 auszulösen. Mit dem
Simulator klappt es so weit. Wenn ich das Programm zum Butterfly
übertrage, weigert es sich. Hat jemand eine Idee, woran es liegen
könnte?
.nolist
.include "m169def.inc"
.list
.cseg
.org 0 ; Programm startet bei Adresse 0x0000
jmp RESET ; Reset Handler
jmp EXT_INT0 ; IRQ0 Handler
jmp PC_INT0 ; PCINT0 Handler
jmp PC_INT1 ; PCINT1 Handler
jmp TIM2_COMP ; Timer2 Compare Handler
jmp TIM2_OVF ; Timer2 Overflow Handler
jmp TIM1_CAPT ; Timer1 Capture Handler
jmp TIM1_COMPA ; Timer1 CompareA Handler
jmp TIM1_COMPB ; Timer1 CompareB Handler
jmp TIM1_OVF ; Timer1 Overflow Handler
jmp TIM0_COMP ; Timer0 Compare Handler
jmp TIM0_OVF ; Timer0 Overflow Handler
jmp SPI_STC ; SPI Transfer Complete Handler
jmp USART_RXC ; USART RX Complete Handler
jmp USART_DRE ; USART,UDR Empty Handler
jmp USART_TXC ; USART TX Complete Handler
jmp USI_STRT ; USI Start Condition Handler
jmp USI_OVFL ; USI Overflow Handler
jmp ANA_COMP ; Analog Comparator Handler
jmp ADC_CC ; ADC Conversion Complete Handler
jmp EE_RDY ; EEPROM Ready Handler
jmp SPM_RDY ; SPM Ready Handler
jmp LCD_SOF ; LCD Start of Frame Handler ;
RESET: ; Main program start
cbi DDRB,7;
cbi DDRB,6;
cbi DDRB,4;
sbi PORTB,7
sbi PORTB,6
sbi PORTB,4
ldi r16, 0xFF
out DDRD, r16 ; Port D ist Ausgang
ldi r16, 0xFF ; alle LEDs aus
out PORTD, r16
ldi r16, high(RAMEND)
out SPH,r16 ; Set Stack Pointer to top of RAM
ldi r16, low(RAMEND)
out SPL,r16
ldi r16, (1<<PCIE1) ; Freigabe Interrupt PCINT12 an PB4
out EIMSK, r16
ldi r16, (1<<PCIF1)
out EIFR, r16
ldi r16, (1<<PCINT12)
sts PCMSK1, r16
sei;
loop:
cbi PORTD,7 ; LED an PB7 an
cbi PORTD,6 ; LED an PB6 an
rjmp loop
;
PC_INT1:
sbi PORTD,7 ; LED an PB7 aus
sbi PORTD,6 ; LED an PB6 aus
ldi r16,(1<<PCIF1)
out EIFR,r16 ; Delete pin change interrupt flags
reti ;
EXT_INT0: reti ;
PC_INT0: reti ;
TIM2_COMP: reti ;
TIM2_OVF: reti ;
TIM1_CAPT: reti ;
TIM1_COMPA: reti ;
TIM1_COMPB: reti ;
TIM1_OVF: reti ;
TIM0_COMP: reti ;
TIM0_OVF: reti ;
SPI_STC: reti ;
USART_RXC: reti ;
USART_DRE: reti ;
USART_TXC: reti ;
USI_STRT: reti ;
USI_OVFL: reti ;
ANA_COMP: reti ;
ADC_CC: reti ;
EE_RDY: reti ;
SPM_RDY: reti ;
LCD_SOF: reti ;
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.