Hallo Antropath,
hmmm - Du bist einfach nicht über den Link zur Bitmanipulation in Deinem Tutorial gestolpert:
http://www.mikrocontroller.net/articles/Bitmanipulation
Dort sollte alles viel besser erklärt sein, als ich es könnte. Ich hoffe, dass Du es damit dann verstehst.
Ach so - ja: ein Port hat acht Pinns. Das gilt theoretisch, praktisch sind nicht bei allen Controllern immer alle Portpins verfügbar. Diese Portpins sind duchnummeriert, wie es die Informatiker machen, also von ein 0 bis 7. Daher kann man "en bloc" - also alle Pinns auf einmal so definieren:
Code:
// Pins/Ports als Ein- (0) oder Ausgänge (1) konfigurieren, Pull Ups (1) aktivieren
// A = Ausgang, E = Eingang ohne , EU = Eingang MIT PullUp
DDRB = 0b10011111; // siehe aktuell oben oder Fortschritt/R2D2
PORTB = 0b01100000; // und Port/Pull Ups (1) aktivieren
Damit werden die Portpins PORTB0 bis PORTB7 definiert und das zugehörige Datenrichtungsbit DDRB an der gewünschte Stelle gesetzt. Deine Codeschnippsel betreffen die Manipulation EINZELNER Bits. Die ist auch möglich - und manchmal auch zwingend erforderlich.
Übrigens kannst Du mit dieser Bitmanipulation nicht nur einzelne Portpins "bearbeiten". Die Zuweisung eines 1-Byte-Wertes ist damit auch möglich. Das ist aber (glaube ich) auch im Tutorial erklärt.
Lesezeichen