Hallo alle, Ganz am Anfang, ich bin Anfängerin und lerne zu Programmieren in meiner Lehre. und zwar steh ich vor folgendem Problem: Aufgabe ist eine LED Matrix so zu Programmieren das alle LED einmal leuchten. Bis dahin alles kein Problem, jetzt die Schwierigkeit: Eine Schleife zu haben die automatisch alle anpricht, ohne das ich jeden Befehl einzeln schreiben muss BSP wie ich es machen würde nur es nicht funktioniert: for (int a = 0; a <= 3; a++) { PORTA |= (1 << PB a); _delay_ms(500); } so mal eine kleine denkweiße, klar muss ich noch PortD ansteuern. Wie schaffe ich es nur die Pins PB0-3 durchlaufen zulassen. Ich hoffe ihr versteht wo mein Problem liegt bzw. was ich meine LG danielle
schau dir mal die Defintion von deinem "PB a" (bzw. halt PB0 etc) an
:
Bearbeitet durch User
Justus S. schrieb: > schau dir mal die Defintion von deinem "PB a" (bzw. halt PB0 etc) an in wie fern die Definition?
na ja, zB PB0 steht ja für irgendwas bzw was (und warum) macht denn zB PORTA = (1 << PB0)
:
Bearbeitet durch User
ja genau eine Diode wird immer angesteuert mit PORTA |= (1 << PA0); PORTD |= (1 << PD3); dann leuchtet eine LED
Ganz einfach:
1 | for (int a = 0; a <= 3; a++) |
2 | {
|
3 | PORTA |= (1 << a); |
4 | _delay_ms(500); |
5 | }
|
Wenn Du Dir die Definitionen für PB0, PB1 usw. in den entsprechenden Header-Dateien anschaust, dann wirst Du sehen, dass das einfache Zahlen von 0 bis 7 sind. Du wirst also ungefähr dieses hier finden:
1 | #define PB0 0
|
2 | #define PB1 1
|
3 | ...
|
4 | #define PB7 7
|
Wenn Du also schreibst:
1 | for (int a = 0; a <= 3; a++) |
2 | {
|
3 | PORTA |= (1 << a); |
4 | _delay_ms(500); |
5 | }
|
dann werden nacheinander die Pins PA0, PA1, PA2 und PA3 aktiviert (und nicht PB0...PB3, da Du hier ja PORTA und nicht PORTB geschrieben hast). Das sollte als Denkanstoß reichen ;-)
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.