Hallo,

ich arbeite mich gerade in die Mikrocontrollerprogrammierung ein. Aktuell kämpfe ich mit den Interrupts.

Das Board ist wie folgt verkabelt: Taster 1 an Port D.2, Taster 2 an D.3, grüne LED an B.1, gelbe LED an B.2, rote LED an B.3.

Das ist mein Programmcode:

Code:
.include "AVR.H"

begin:   rjmp main                           ; RESET External Pin, Power-on Reset, Brown-out Reset and Watchdog Reset
    	 rjmp interrupt0		     ; INT0 External Interrupt Request 0
	 rjmp interrupt1		     ; INT1 External Interrupt Request 1
 	 reti                                ; TIMER2 COMP Timer/Counter2 Compare Match
	 reti                                ; TIMER2 OVF Timer/Counter2 Overflow
	 reti                                ; TIMER1 CAPT Timer/Counter1 Capture Event
	 reti                                ; TIMER1 COMPA Timer/Counter1 Compare Match A
	 reti                                ; TIMER1 COMPB Timer/Counter1 Compare Match B
	 reti                                ; TIMER1 OVF Timer/Counter1 Overflow
	 reti                                ; TIMER0 OVF Timer/Counter0 Overflow
	 reti                                ; SPI, STC Serial Transfer Complete
	 reti                                ; USART, RXC USART, Rx Complete
	 reti                                ; USART, UDRE USART Data Register Empty
	 reti                                ; USART, TXC USART, Tx Complete
	 reti                                ; ADC ADC Conversion Complete
	 reti                                ; EE_RDY EEPROM Ready
	 reti                                ; ANA_COMP Analog Comparator
	 reti                                ; TWI 2-wire Serial Interface
	 reti                                ; SPM_RDY Store Program Memory Ready
    
;------------------------------------------------------------------------------

main:	 ldi r16, hi8(RAMEND)
    	 out SPH, r16
    	 ldi r16, lo8(RAMEND)
    	 out SPL,r16
    	
    	 cbi DDRD, 2	        ; D.2: Eingang, Taster
    	 sbi PORTD, 2	        ; Pull-Up
    	 cbi DDRD, 3	        ; D.3: Eingang, Taster
    	 sbi PORTD, 3	        ; Pull-Up
    	
    	 sbi DDRB, 1	        ; B.1: grüne LED
    	 sbi DDRB, 2	        ; B.2: gelbe LED
    	 sbi DDRB, 3	        ; B.3: rote LED
    	
    	 sbi PORTB, 1	        ; B.1: grüne LED ein
    	 sbi PORTB, 2	        ; B.2: gelbe LED ein
    	 sbi PORTB, 3	        ; B.3: rote LED ein
	
	 ldi r16, 0b00000011
	 out EIMSK, r16
	
	 ldi r16, 0b00001010
	 sts EICRA, r16
	
	 sei
	
;-----------------------------------------------------------------------------

mainloop:       wdr
	        rjmp mainloop
	
interrupt0:	cbi PORTB, 1	; grüne LED aus
	        reti
		
interrupt1:	cbi PORTB, 3	; rote LED aus
	        reti
Was passieren soll: Die drei LEDs leuchten mit Programmbeginn. Bei Betätigung von Taster 1 wird die grüne LED per Interrupt abgeschaltet. Bei Betätigung von Taster 2 wird die grüne LED abgeschaltet.

Was passiert: Die LED leuchten. Taster 1 schaltet die rote LED aus, Taster 2 bewirkt gar nichts.

Ich kapier leider nicht, was da schief läuft, und bin für jede Hilfe dankbar.