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
Gast
#1029430
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 */ }
Gast
#1029446
Bis jetzt ist es afaik auch nur als Ausgang definiert. Mehr nicht!
Oh ok, und wie setze ich in denn auf high?
Gast
#1029457
>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 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
Sollte jetzt aber, die LED zum leuchten bringen. Wenn nicht, ist was anderes los.
Danke, jetzt klappt es! joni8a
Gast
#1029506
Hach. Ich liebe es wenn es funktioniert.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.