aktualisiert 01.06.2010 | ||
Was eigentlich sind Pin's und Port's ? | ||
Beim Atmega gibt es diverse
Ein/Ausgänge diese
sind jeweils
zu 8 Bit zu einem Port zusammengefasst. Der Atmega 8 besitzt 3 dieser Ports. Die Ports hat man nach dem Alphabet benannt. Der AVR besitzt Ports mit den Namen Port B ,Port C und sinnvoll Port D. Beim Port C hat man die 8.Leitung nicht herausgeführt. Jeden Anschluss kann man entweder als einzel Ein oder Ausgang definieren oder man kann auch den gesamten Port verwenden. |
||
Folgende Befehle oder Anweisungen beziehen sich alle auf EIN und( oder) Ausgänge des Mikroprozessors | ||
DDRD = 1 | DDRD steht für DataDirectionRegisterD Im
AVR wird dabei ein Register gesetzt,der Steuerelektronik des Ports ( aus dem Englischen für Anschluss) wird damit gesagt,das er als Ausgang oder Eingang arbeiten soll. Hier wird der gesamte Port D als Ausgang definiert , die 1 gibt an das es sich um einen Ausgang handelt , eine 0 (Null) würde als Eingang bewertet, wobei keine Definition Automatisch als Eingang gewertet wird |
|
DDRD=&HFF | Hier wird der gesamte Port D als
Ausgang angegeben allerdings als Hexwert dargestellt durch das H .FF ist der Hexwert für die Zahl 255 oder als Binärwert 11111111 |
|
DDRD=255 | Hier wird der gesamte Port D als Ausgang angegeben allerdings als Dezimalwert | |
DDRD=&B11111111 | Hier wird Port D komplett als Ausgang
angegeben wobei jede 1 für ein Bit steht, also von rechts aus
gesehen die erste 1 ist Bit d.0 die zweite 1 ist Bit D.1 usw... |
|
Config Portd = Output | Konfiguriert den gesamten Port als Ausgang . | |
DDRD=&B11110000 | Hier
wird der PinD.0 / D.1/D.2/D.3 als Eingang und Pind.4 /D.5/D.6/D.7 als
Ausgang definiert. |
|
Mit den folgenden Anweisungen werden die internen PullUp Widerstände aktiviert | ||
|
|
|
PortD.0 = 1 | Pin D.0 wird auf High geschaltet | Also der Interne PullUp Widerstand wird aktiviert |
PortD=255 oder | Die PullUp's des gesamten Port werden aktiviert ( hier der Wert 255 als Dezimale schreibweise | |
PortD=&B11111111 | Die PullUp's des gesamten Port werden aktiviert ( hier als Binäre schreibweise) | |
LED Alias PortD.0 | Port D.0 wird als Variable LED abgelegt | |
Generell gilt
unbenutzte Pin's sollten als
Eingänge definiert werden , um sie so auf einen festen Bezugspunkt
zu legen auch wenn sie nicht benutzt werden, also entweder durch den internen PullUp Widerstand auf Plus legen, oder eben extern auf Masse legen . Weil diese Eingänge sonst einen undefinierten Wert annehmen können, und dadurch das Programm durcheinander bringen können |
||
Sobald die Direktive "$Baud" im
Programm eingesetzt wird, hat sie Vorrang vor den Funktionen als
normalen Ein oder Ausgängen.
|
||
Zustände
der
Pin / Port's auf dem Display
anzeigen lassen !
|
||
Sollte bei der
Programmerstellung Probleme auftreten kann es hilfreich sein sich die
Aktuellen Zustände der Pin / Ports anzeigen zu lassen. Dazu kann
man sich einfach behelfen indem man sich mit dem Befehl "Display " die
Zustände auf dem Display falls angeschlossen wie folgt anzeigen
lässt: |
||
Lcd Pinb.0 ; Pinb.1 ; Pinb.2 ; Pinb.3 ; Pinb.4 ; Pinb.5 ; Pinb.6 ; Pinb.7 | ||
Aktualisiert 23.02.2019 | ||
Copyright by Manfred Schrod 2009 |