mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Total verwirrt über Code-Schnipsel


Autor: Steffen B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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:
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...

Autor: UBoot-Stocki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: t.b.d (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
besorg dir mal ein einigermaßen gutes C buch und lese den artikel über 
bitmanipulation! ist ganz normales c, nich uc spezifisches

Autor: Gast123 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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..

Autor: Steffen B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.