Total verwirrt über Code-Schnipsel

Gast #765689
Lesenswert?
• ▲
▼
Hallo zusammen,

ich bin gerade total verwirrt. Ich bin recht neu in der 
µC-Programmierung und sehe vor lauter Code den Wald nicht mehr.

Was bedeutet noch mal:
1
PORTD = (1<<PD1);

Schreibe eine "1" an PortD Pin 1?

Ich persönlich drücke das immer anders aus, aber ich habe hier den Code 
von einem Komolitonen, der die schreibweise wie oben nutzt.

Ich habe auf anhieb nichts gefunden, im Forum über diese Schreibweise 
und wäre froh wenn ihr Kenner das mal eben aus dem Ärmel schütteln 
würdet...
Gast #765759
Lesenswert?
• ▲
▼
PORTD = (1<<PD1); bedeutet weise PortD den Wert (1<<PD1) zu (was du 
sicherlich schon weisst :-) )

(1<<PD1) bedeutet "nimm eine Eins und schiebe sie PD1 Stellen nach 
links"
PD1 muss natürlich irgendwo definiert sein und hat sicherlich den Wert 1

PORTD=(1<<PD1) = (1<<1) = 0b0000_0010

in diesem Beispiel macht das nicht sooo viel sinn, wenn man jedoch 
Kontrollregistern Werte zuweisst wird es (zugegeben erst nach einer 
Eingewöhnungsphase..) übersichtlicher..

Beispiel:
TCCRS0|=(1<<CS02) | (1<<CS00) | (1<<xyz);
(im Register TCCRS werden die Bits CS02, CS00 und xyz auf '1' gesetzt)
--> da sieht man eigentlich gleich, welche Bits gesetzt werden.. 
natürlich müssen die Bezeichner definiert werden, aber das sollte in den 
include-dateien eigentlich schon drin sein..
Gast #765852
Lesenswert?
• ▲
▼
Vielen Dank euch allen! Ich war etwas über die Schreibweise irritiert, 
aber jetzt kann ich mir vorstellen was gemeint ist/war. Ich muss mich 
nur noch an diese oder jene Schreibweise gewöhnen. Ist vielleicht nicht 
verkehrt, wenn man einige "Wege nach Rom" gezeigt bekommt!

Viele Grüße und vielen Dank

Steffen

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren