-
-
Erfahrener Benutzer
Roboter Experte
...fast richtig 
"DDR" sind in der Tat die "Data Directory"Register, mit denen man festlegt, ob ein Anschluss ein Ein- oder Ausgang ist.
Beim Power-On-Reset sind sie erstmal alle auf 0, d.h. alle Anschlüsse sind als Eingänge geschaltet. Das ist auch gut so, denn ein Eingang kann erstmal keinen externen Schaden anrichten.
Du kannst die einzelnen Bits eines Registers auf zwei Arten setzen:
Entweder einzeln, also z.B. DDRB.6=1 (setzt das 6. Bit)
oder alle zusammen. Wenn Du also D.0, D.1, D.2 und D.3 als Ausgang nutzen willst, schreibst Du einfach
DDRD = &B00001111
"&B" heißt nur, dass die nachfolgende Zahl binär dargestellt ist. Und das höchstwertigste Bit steht links.
Weil binär 00001111 dezimal 15 entspricht, könnte man auch schreiben
DDRD = 15
Aber binär ist´s halt anschaulicher, weil man alle Bits direkt vor sich sieht.
Eingänge werden in der Tat über PINX.Y abgefragt, und wenn Du einen Ausgang auf 1 oder 0 setzten möchtest, geht das über PORTX.Y.
Das PORT-Register hat aber auch eine Aufgabe, wenn der Anschluss als Eingang konfiguriert ist. Damit wird nämlich der interne PullUZp-Widerstand aktiviert, der die Eingangspin über ca. 50 kOhm auf +5V zieht.
Ist es jetzt etwas klarer?
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen