Ein Port besteht normalerweise aus 8 Pins.
Ein Port trägt die Beizeichnung A-F. Jeder AVR Mikrocontroller hat einen PORTB.
Wenn Sie einen einzelnen Pin High oder Low setzen wollen dann können Sie den SET bzw. RESET Befehl benutzen.
Vorher muss definiert werden ob die Pins für Eingabe oder für Ausgabe benutzt werden sollen.
Dafür gibt es ein Register mit dem Namen DDRx für jeden Port. In unserem Beispiel heißt es DDRB. Wenn Sie eine 0 an die entsprechende Position im DDR-Register schreiben dann kann der Pin für Eingabe benutzt werden.
Wenn Sie eine 1 schreiben dann kann der Pin für Ausgabe benutzt werden. Sie können auch die folgende Schreibweise benutzen:
Nachdem das Richtungs-Bit (im DDR-Register) gesetzt ist kann man entweder das PORTx-Register zum Setzen eines Logik-Pegels benutzen oder das PINx-Register um den Pin-Zustand einzulesen.
Das dritte Register ist das PINx-Register. In unserem Beispiel PINB.
Wenn wir zum Beispiel PORTB.7 als AUSGABE-Pin benutzen möchten:
Bei Benutzung eines Pin als Eingabe-Pin kann man einen internen Pullup-Widerstand aktivieren.
Pullup bedeutet, dass der Pin mit einem Widerstand mit VCC verbunden wird.
Um den Pullup-Widerstand zu aktivieren schreiben Sie eine '1' in das PORT-Register
Beispiel zum Lesen vom PORTB.0-Pin :
Sie können auch PORTx lesen aber das gibt dann den Wert zurück, der zuletzt in PORTx geschrieben wurde und NICHT den Zustand am Eingabe-Pin.
Zum Lesen und Schreiben ganzer Bytes :
Vorher muss definiert werden ob die Pins für Eingabe oder für Ausgabe benutzt werden sollen.
Dafür gibt es ein Register mit dem Namen DDRx für jeden Port. In unserem Beispiel heißt es DDRB. Wenn Sie eine 0 an die entsprechende Position im DDR-Register schreiben dann kann der Pin für Eingabe benutzt werden.
Wenn Sie eine 1 schreiben dann kann der Pin für Ausgabe benutzt werden. Sie können auch die folgende Schreibweise benutzen:
Nachdem das Richtungs-Bit (im DDR-Register) gesetzt ist kann man entweder das PORTx-Register zum Setzen eines Logik-Pegels benutzen oder das PINx-Register um den Pin-Zustand einzulesen.
Das dritte Register ist das PINx-Register. In unserem Beispiel PINB.
Wenn wir zum Beispiel PORTB.7 als AUSGABE-Pin benutzen möchten:
Bei Benutzung eines Pin als Eingabe-Pin kann man einen internen Pullup-Widerstand aktivieren.
Pullup bedeutet, dass der Pin mit einem Widerstand mit VCC verbunden wird.
Um den Pullup-Widerstand zu aktivieren schreiben Sie eine '1' in das PORT-Register
Beispiel zum Lesen vom PORTB.0-Pin :
Zum Lesen und Schreiben ganzer Bytes :
14.319 mal gelesen