Gast
#2544900
Hallo, ich habe vor kurzem angefangen Mikrocontroller zu programmieren und bin jetzt auf ein Problem gestoßen, zu dem ich im Internet leider nichts Brauchbares finden konnte. An Pin A4 ist ein Transistor angeschlossen, der einen ganzen Haufen von weiteren LEDs betreibt. Wenn der LED-Haufen an ist, soll nebenbei noch eine Status-LED an PinA5 eingeschaltet sein. Wenn ich nun einen Taster betätige, der an INT0 angeschlossen ist, soll ein Interrupt ausgelöst werden, in dem der Transistor (PA4) ausgeschaltet wird und gleichzeitig auch die Status-LED ausgeschaltet wird. So weit so gut. Realisiert habe ich das so: (Auszug aus meinem Programm in der IR-Routine) #if (PINA&(1<<PA4)) PORTA &= ~(1 << PA4); #else PORTA |= (1 << PA4); #endif #if (PINA&(1<<PA4)) PORTA &= ~(1 << PA5); #else PORTA |= (1 << PA5); #endif Eingeschaltet werden beide Pins aber eben nicht ausgeschaltet. Dazu kommt, dass der Compiler hin und wieder den Fehler meldet, dass in der Bedingung des If-Konstrukts ein linker Operand fehlt. Warum weiß ich auch nicht. Ich habe auch schon probiert einen Extra-Pin als Eingang zu definieren und den dann mit PA4 zu verbinden. Und dann eben den neuen Pin abzufragen. Geht leider auch nicht. Ich weiß jetzt ehrlich gesagt echt nicht mehr weiter. Viele Grüße LePo