PORT und PIN

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

Aufgrund technischer Veränderungen ist der Mailverkehr innerhalb des Forums (Private Nachrichten) nur noch eingeschränkt möglich. Die Einschränkung ist notwendig, um zusätzliche Betriebskosten für das Forum zu vermeiden. Näheres zu den Hintergründen im Thread "Aktuelles zum Forum".Wir bitten um Verständnis.

Hinweis kann nach Kenntnisnahme deaktiviert werden!

  • Ein AVR Mikrocontroller hat drei Register für jeden Port.
    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:

    BASCOM-Quellcode

    1. CONFIG PORTX.Y= INPUT|OUTPUT




    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:

    BASCOM-Quellcode

    1. CONFIG PORTB.7=OUTPUT ' schreibt eine '1' in DDRB.7
    2. SET PORTB.7 ' setzt das most significant Bit auf +5V
    3. RESET PORTB.7 ' setzt das most significant Bit auf 0 V

    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 :

    BASCOM-Quellcode

    1. CONFIG PORTB.0=INPUT ' setzt DDRB.0 auf '0'
    2. PORTB.0=1 ' Internen Pullup-Widerstand aktivieren Print PINB.0
    3. Print PORTB.0 'Liest das Least Significant Bit (B.0) und gibt es über RS-232 aus
    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 :


    BASCOM-Quellcode

    1. PORTB = 0 'schreibt 0 in das Register wodurch alle Pins Low werden
    2. PRINT PINB 'gibt die Eingabe an den Pins aus

    14.009 mal gelesen