Vielleicht könnte es ja auch an einem Programmfehler liegen, ich hab mit interrupt praktisch keine Erfahrung. Hier ist mal der Interrupt der das auslösen soll:
Code:
USART_RXC:
call lcd_Intgestartet
in temp, UDR
cpi temp, 'w' ;vergleicht temp mit w
breq sub1 ;wenn gleich wechsle zu sub1
cpi temp, 's' ;vergleicht temp mit s
breq sub2 ;wenn gleich wechsle zu sub2
cpi temp, 'a' ;vergleiche temp mit a
breq sub3 ;wenn gleich wechsle zu sub3
cpi temp, 'd' ;vergleiche temp mit d
breq sub4 ;wenn gleich wechsle zu sub4
reti ;wenn keine übereinstimmung --> Interrupt beeden und Programm fortsetzen
sub1:
call lcd_vor ;gibt auf LCD vor aus
call delay_5s ;wartet 5sec
reti ;beendet Interrupt
sub2:
call lcd_back ;gibt auf LCD zurück aus
call delay_5s ;wartet 5sec
reti ;beendet Interrupt
sub3:
call lcd_rechts ;gibt auf LCD rechts aus
call delay_5s ;wartet 5sec
reti ;beendet Interrupt
sub4:
call lcd_links ;gibt auf LCD links aus
call delay_5s ;wartet 5sec
reti ;beendet Interrupt
Ich glaube allerdings schon das das Funktioniert. Ich habe auch die UART initialisiert (Baudrate einstellen,...)
EDIT:
JUHU, das Programm funzt
Es war wirklich nur RX und TX vertauscht, die einfachsten Fehler findet man wirklich erst am ende
danke für die Hilfe
hiasi
Lesezeichen