Hallo Habe die LED mit einem Vorwiderstand an Vcc angeschlossen und schalte den Pin nach GND, wodurch die LED geschaltet wirde. Bin jetzt aber total durcheinander gekomnmen bei welchem Befehl die LED leuchtet oder nicht. [c] DDRA=0b00101001; // DDRA auf Ausgang schalten PORTA=0b00101001; // PortA auf aus/ein while(1) // Programmschleife { PORTA |=(1<<PINA0); // LED 3 ein ??? _delay_ms(500); // Pause 500ms PORTA &=~(1<<PINA0); // LED 3 aus ??? _delay_ms(500); // Pause 500ms }
Finds raus! zB:
1 | DDRA=0b00101001; // DDRA auf Ausgang schalten |
2 | PORTA=0b00101001; // PortA auf aus/ein |
3 | while(1) // Programmschleife |
4 | {
|
5 | PORTA |=(1<<PINA0); // LED 3 ein ??? |
6 | _delay_ms(900); // Pause 500ms |
7 | PORTA &=~(1<<PINA0); // LED 3 aus ??? |
8 | _delay_ms(100); // Pause 500ms |
9 | }
|
Wenn die LED nach Vcc geschaltet ist, leuchtet sie wenn der µC-Pin low ist, ist sie nach Masse geschaltet, dann leuchtet sie wenn der Pin high ist. Mit AVRs lässt sich beides machen, gibt keinen Vor- oder Nachteil der Varianten wenns nur um die LED geht.
Teo D. schrieb: > Finds raus! Gut! Das war auch mein erster Gedanke 😀. Klaus schrieb: > DDRA=0b00101001; // DDRA auf Ausgang schalten > PORTA=0b00101001; // PortA auf aus/ein Naja, die Kommentare passen nicht so ganz. Die DDRA-Zuweisung wird nur PA0, PA3 und PA5 auf Ausgang schalten. Und die PORTA-Zuweisung wird die selben Pins auf HIGH setzen und für die anderen einen offenen Eingang hinterlassen (ist eh der Defaultwert nach dem Reset). Sinnvoller wäre es, falls die restlichen Pins des Ports nicht genutzt werden, die entweder alle auf Ausgang zu schalten oder wenigstens deren Pullup zu aktivieren: Also entweder: DDRA = 0xFF; // alles Ausgänge oder PORTA = 0xFF; // PA1,2,4,6,7 PU aktivieren.
Klaus schrieb: > Bin jetzt aber total durcheinander gekomnmen bei welchem Befehl > die LED leuchtet oder nicht. Dein Ansatz ist schon gut. Wenn du jetzt auch noch unterschiedliche Pausenlängen verwendest, lassen sich beide Zustände anhand der Einschaltdauer unterscheiden und du siehst, wie die Zuordnung zu deinen Portbefehlen aussieht.
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.