Hallo, ich bin neu was die programmierung der AVR´s in C angeht. Ich habe mir auch schon das Tutorial angekuckt. Ich bin nicht grad weit gekommen bevor ich passen musste. Ich verstehe nicht wie ich die ports beschalte. Ich möchte den port A0 als ausgang definieren und auf high setzen, A1 möchte ich dagegen auf low setzen. Da komme ich nicht weiter, ich werde aus den Tutorials nicht schlau, hoffe jemand kann mir helfen. joni8a
Hallo, um einen enstprechenden Portpin als Ausgang zu setzen musst du einfach das entsprechende Bit im DDRX Register setzen. (Das X steht für den jeweilgen PORT(A,B,C, D) ). Wenn das Bit des Portpins null ist ist es ein Eingang. In deinem Bsp. wäre des dann einfach: DDRA |= (1<<PA0); Gruß Peter
Hi, erstmal danke für die antwort, wenn ich jetzt folgendes programm auf meinen avr spiele passiert leider nichts :(. Die LED bleibt tot. #include <avr/io.h> int main(void) { DDRA |= (1<<PA0); while(1) { } return 0; /* never reached */ }
Bis jetzt ist es afaik auch nur als Ausgang definiert. Mehr nicht!
>Die LED bleibt tot Arme LED. Mit Deinem Programm ist, wie Matthias schon sagt, der Port auf Ausgang geschaltet. Nach dem Reset ist das Datenregister auf 0 gesetzt. D.h. Du müsstest eine 0 (= 0V) messen können. Was benutzt Du für eine Hardware? Die LED könnte theoretische jetzt leuchten. Der Code
1 | #include <avr/io.h> |
2 | |
3 | int main(void) |
4 | {
|
5 | DDRA |= (1<<PA0); |
6 | PORTA |= (1<<PA0); |
7 | |
8 | while(1) |
9 | {
|
10 | |
11 | }
|
12 | return 0; /* never reached */ |
13 | }
|
Sollte jetzt aber, die LED zum leuchten bringen. Wenn nicht, ist was anderes los.
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.