Gast
#402072
Ich besitze seit 2 Tagen einen Atmega16 und spiele gerade ein bisschen damit rum. Mein LCD kann ich schon ansteuern und jetzt will ich noch das er auf Tastendrücke reagiert(per Interrupt). Ich habe je einen Taster an INT0 und INT1 mit Pull up-widerständen angeschlossen und dazu folgendes Programm geschrieben: .ORG $0000 rjmp main ; Reset-vector rjmp taste0 ; External Interrupt Request 0 rjmp taste1 ; External Interrupt Request 1 ........ LDI mp,LOW(RAMEND) ;Initiate Stackpointer OUT SPL,mp ; wegen verwendeten Unterprogrammen LDI mp,HIGH(RAMEND) OUT SPH,mp ldi r16,0b11000000 ;int1 und int 0 anschalten out GICR,R16 ldi r16,0b00001010 ;int1 und int00 auf fallende Flanke out mcucr,r16 sei .... taste0: push r16 in r16,sreg push r16 .... pop r16 out sreg,r16 pop r16 reti taste1: push r16 in r16,sreg push r16 ..... pop r16 out sreg,r16 pop r16 reti Mein Problem: Es wird nur ein Interrupt ausgelöst wenn ich auf Taste 1 Drücke. Bei Taste 0 passiert nichts. Ich hänge jetzt schon seit Stunden daran und mir sind die Ideen ausgegangen. Habe ich was an den Interruptregistern falsch eingestellt?