Hallo, ich habe ne ganz simple Frage zu meinen kleinen Programm das einfach eine LED einschalten soll solange ich auf einen Taster drücke. dieses Programm funktioniert, aber sobald ich den Befehl PORTC = 0x01; durch PORTC |= (1 << 1); ersetze tut sich nichts mehr. bool alarm = false; int main() { DDRC = 0xFF; // PC0..PC7 as output PORTC = 0x00; // all PORTC output pins Off DDRA = 0x00; //all A port pins as input PORTA=(1<<PA0); //Enable internal Pull-Up resistors while(1) { if (bit_is_clear(PINA,PA0)) alarm=true; if (alarm == true) { // Alarmfall // PORTC |= (1 << 1); PORTC = 0x01; alarm = false; } else PORTC = 0x00; } return 0; } Weis jemand warum? Was mache ich falsch?
(1 << 1) ergibt 0x02!!! Musst schreiben: PORTC |= (1<<0);
OK, danke für den Tip es sind an beiden Ausgängen LEDs (PC0 und PC1) angeschlossen Ich weis nicht warum, aber jetzt gehts! DANKE
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.