CONFIG PORT/de
(→(**COPIED FROM ENGLISH PAGE**) =) |
(→Example) |
||
(2 intermediate revisions by one user not shown) | |||
Line 17: | Line 17: | ||
<span style="font-family: Arial;"> </span> | <span style="font-family: Arial;"> </span> | ||
− | = <span class="f_Header"> | + | = <span class="f_Header">Anmerkungen</span> = |
<div style="padding: 0px; margin: 0px 0px 0px 4px;"> | <div style="padding: 0px; margin: 0px 0px 0px 4px;"> | ||
{| width="567" cellspacing="0" cellpadding="1" border="1" style="border: 2px solid rgb(0, 0, 0); border-spacing: 0px; border-collapse: collapse;" | {| width="567" cellspacing="0" cellpadding="1" border="1" style="border: 2px solid rgb(0, 0, 0); border-spacing: 0px; border-collapse: collapse;" | ||
Line 25: | Line 25: | ||
| valign="top" width="100%" style="width: 465px; border: 1px solid rgb(0, 0, 0);" | | | valign="top" width="100%" style="width: 465px; border: 1px solid rgb(0, 0, 0);" | | ||
− | + | Eine numerische Konstante, die INPUT oder OUTPUT sein kann. | |
<span style="font-family: Arial;"> </span> | <span style="font-family: Arial;"> </span> | ||
− | INPUT | + | INPUT setzt das Data Direction Register für Portx auf Eingabe (=Input). |
− | OUTPUT | + | OUTPUT setzt das Data Direction Register für Portx auf Ausgabe (=Output). |
− | + | Man kann auch eine Zahl für state benutzen. <span style="font-weight: bold;">&B</span>00001111 | |
+ | setzt das Upper Nibble (Bit 4 bis 7) auf Eingabe und das Lower Nibble (Bits 0 bis 3) auf Ausgabe. | ||
<span style="font-family: Arial;"> </span> | <span style="font-family: Arial;"> </span> | ||
− | + | Man kann auch einen einzelnen Portpin mit dem CONFIG PIN = state Befehl setzen. | |
− | + | Auch dann kann man INPUT, OUTPUT oder eine Zahl für state benutzen. Als Zahl geht nur 0 (für Eingang) oder 1 (für Ausgang). | |
|- style="vertical-align: top;" | |- style="vertical-align: top;" | ||
Line 46: | Line 47: | ||
| valign="top" width="100%" style="width: 465px; border: 1px solid rgb(0, 0, 0);" | | | valign="top" width="100%" style="width: 465px; border: 1px solid rgb(0, 0, 0);" | | ||
− | + | Gültiger Port-Buchstabe wie zum Beispiel A, B, C usw. | |
− | + | Beispiel : CONFIG PORT<span style="font-weight: bold;">B</span> = Output | |
|- style="vertical-align: top;" | |- style="vertical-align: top;" | ||
Line 55: | Line 56: | ||
| valign="top" width="100%" style="width: 465px; border: 1px solid rgb(0, 0, 0);" | | | valign="top" width="100%" style="width: 465px; border: 1px solid rgb(0, 0, 0);" | | ||
− | + | Gültige Pin-Nummer im Bereich 0 bis 7. | |
− | + | Beispiel : CONFIG PINB.<span style="font-weight: bold;">0</span>=INPUT | |
− | + | ||
|} | |} | ||
Line 63: | Line 63: | ||
<span style="font-family: Arial;"> </span> | <span style="font-family: Arial;"> </span> | ||
− | + | Die beste Methode, die Datenrichtung für mehr als einen Pin zu setzen ist, den CONFIG PORT Befehl zu bnutzen und nicht mehrere Zeilen mit CONFIG PIN Befehlen. | |
− | + | ||
| | ||
− | + | Man kann keine Variablen für Port-Buchstaben oder Pin-Nummer verwenden. Wenn Sie die Datenrichtung dynamisch setzen wollen dann kann man SET PORTB.somepin schreiben wobei somepin eine Konstante oder eine Variable sein kann. | |
− | + | ||
− | + | ||
+ | Wenn der Port auch dynamisch sein soll dann kann man OUT mit der entsprechenden Adresse benutzen. | ||
| | ||
<span style="font-family: Arial;"> </span> | <span style="font-family: Arial;"> </span> | ||
− | = <span class="f_Header"> | + | = <span class="f_Header">Siehe auch</span> = |
[[AVR Internal Hardware Port B|AVR Internal hardware ports]] | [[AVR Internal Hardware Port B|AVR Internal hardware ports]] | ||
Line 83: | Line 81: | ||
<span style="font-family: Arial;"> </span> | <span style="font-family: Arial;"> </span> | ||
− | = <span class="f_Header"> | + | = <span class="f_Header">Beispiel</span> = |
<br/><source lang="bascomavr"> | <br/><source lang="bascomavr"> | ||
Line 95: | Line 93: | ||
'----------------------------------------------------------------------------------------- | '----------------------------------------------------------------------------------------- | ||
− | $regfile = "m48def.dat" ' | + | $regfile = "m48def.dat" ' Mikrocontroller |
− | $crystal = 4000000 ' | + | $crystal = 4000000 ' Taktfrequenz |
− | $baud = 19200 ' | + | $baud = 19200 ' Baudrate |
$hwstack = 32 ' default use 32 for the hardware stack | $hwstack = 32 ' default use 32 for the hardware stack | ||
$swstack = 10 ' default use 10 for the SW stack | $swstack = 10 ' default use 10 for the SW stack | ||
Line 104: | Line 102: | ||
Dim A As Byte , Count As Byte | Dim A As Byte , Count As Byte | ||
− | ' | + | ' PORT D als Eingang konfigurieren |
Config Portd = Input | Config Portd = Input | ||
− | ' | + | 'Wenn man PORT liest dann liest man nur den Zustand den man in Port geschrieben hat. |
− | + | ''Wenn man den logischen Zustand lesen möchte, der am Pin anliegr dann muss man das PIN-Register lesen!!! | |
− | ' | + | 'PIN nicht PORT!! |
− | ' | + | |
− | ' | + | |
A = Pind | A = Pind | ||
− | ' | + | 'Ein Port oder SFR kann wie ein Byte behandelt werden. |
A = A And Portd | A = A And Portd | ||
− | Print A ' | + | Print A 'A ausgeben |
− | Bitwait Pind.7 , Reset ' | + | Bitwait Pind.7 , Reset 'WArten bis das Bit Low ist. |
Line 125: | Line 121: | ||
Config Portb = Output | Config Portb = Output | ||
− | ' | + | 'Mit Wertzuwesung: |
− | Portb = 10 ' | + | Portb = 10 'setzt Port B auf10 |
Portb = Portb And 2 | Portb = Portb And 2 | ||
− | Set Portb.0 ' | + | Set Portb.0 'setzt Bit 0 des Port B auf 1 |
Incr Portb | Incr Portb | ||
− | ' | + | 'Light Show mit dem STK200 |
Count = 0 | Count = 0 | ||
Do | Do | ||
Line 139: | Line 135: | ||
Portb = 1 | Portb = 1 | ||
For A = 1 To 8 | For A = 1 To 8 | ||
− | Rotate Portb , Left ' | + | Rotate Portb , Left 'Bits nach links rotieren |
Wait 1 | Wait 1 | ||
Next | Next | ||
− | ' | + | 'Die folgenden 2 Zeilen machen das Gleich wie die Schleife oben. |
− | ' | + | 'aber es gibt keine Verzögerung. |
' Portb = 1 | ' Portb = 1 | ||
' Rotate Portb , Left , 8 | ' Rotate Portb , Left , 8 | ||
Line 149: | Line 145: | ||
Print "Ready" | Print "Ready" | ||
− | ' | + | 'Beachten Sie dass ein AVR-Port ein Data Direction Register hat. |
− | ' | + | 'Wenn man einen Pin für Eingabe benutzen möchte dann muss man das Data Direction Register vorher auf 0 setzen. |
− | ' | + | 'Man kann das machen indem man das DDRx-Register mit Nullen beschreibt: |
− | 'DDRB =&B11110000 ' | + | 'DDRB =&B11110000 'setzt portb1.0, portb.1, portb.2 und portb.3 für die Verwendung als EINGABE-Pin. |
− | ' | + | 'Also : Wenn Sie einen Pin für Eingabe benutzen wollen dann setzen Sie es im DDRx-Register vorher auf Null! |
− | ' | + | ' und lesen Sie mit PINx ein |
− | ' | + | ' und wenn Sie einen Pin für Ausgabe benutzen möchten dann schreiben Sie eine 1 in das DDRx-Register |
− | ' | + | ' und schreiben Sie den Wert in PORTx |
End | End | ||
</source><br/>{{Languages}} | </source><br/>{{Languages}} | ||
[[Category:BASCOM Language Reference/de]] | [[Category:BASCOM Language Reference/de]] |
Latest revision as of 23:35, 8 March 2013
Contents |
Funktion
Setzt den Port oder einen Portpin auf die gewünschte Datenrichtung.
Syntax
CONFIG PORTx = state
CONFIG PINx.y = state
Anmerkungen
state |
Eine numerische Konstante, die INPUT oder OUTPUT sein kann.
INPUT setzt das Data Direction Register für Portx auf Eingabe (=Input). OUTPUT setzt das Data Direction Register für Portx auf Ausgabe (=Output). Man kann auch eine Zahl für state benutzen. &B00001111 setzt das Upper Nibble (Bit 4 bis 7) auf Eingabe und das Lower Nibble (Bits 0 bis 3) auf Ausgabe.
Man kann auch einen einzelnen Portpin mit dem CONFIG PIN = state Befehl setzen. Auch dann kann man INPUT, OUTPUT oder eine Zahl für state benutzen. Als Zahl geht nur 0 (für Eingang) oder 1 (für Ausgang). |
x |
Gültiger Port-Buchstabe wie zum Beispiel A, B, C usw. Beispiel : CONFIG PORTB = Output |
y |
Gültige Pin-Nummer im Bereich 0 bis 7. Beispiel : CONFIG PINB.0=INPUT |
Die beste Methode, die Datenrichtung für mehr als einen Pin zu setzen ist, den CONFIG PORT Befehl zu bnutzen und nicht mehrere Zeilen mit CONFIG PIN Befehlen.
Man kann keine Variablen für Port-Buchstaben oder Pin-Nummer verwenden. Wenn Sie die Datenrichtung dynamisch setzen wollen dann kann man SET PORTB.somepin schreiben wobei somepin eine Konstante oder eine Variable sein kann.
Wenn der Port auch dynamisch sein soll dann kann man OUT mit der entsprechenden Adresse benutzen.
Siehe auch
Beispiel
'----------------------------------------------------------------------------------------- 'name : port.bas 'copyright : (c) 1995-2005, MCS Electronics 'purpose : demo: PortB and PortD 'micro : Mega48 'suited for demo : yes 'commercial addon needed : no '----------------------------------------------------------------------------------------- $regfile = "m48def.dat" ' Mikrocontroller $crystal = 4000000 ' Taktfrequenz $baud = 19200 ' Baudrate $hwstack = 32 ' default use 32 for the hardware stack $swstack = 10 ' default use 10 for the SW stack $framesize = 40 ' default use 40 for the frame space Dim A As Byte , Count As Byte ' PORT D als Eingang konfigurieren Config Portd = Input 'Wenn man PORT liest dann liest man nur den Zustand den man in Port geschrieben hat. ''Wenn man den logischen Zustand lesen möchte, der am Pin anliegr dann muss man das PIN-Register lesen!!! 'PIN nicht PORT!! A = Pind 'Ein Port oder SFR kann wie ein Byte behandelt werden. A = A And Portd Print A 'A ausgeben Bitwait Pind.7 , Reset 'WArten bis das Bit Low ist. 'We will use port B for output Config Portb = Output 'Mit Wertzuwesung: Portb = 10 'setzt Port B auf10 Portb = Portb And 2 Set Portb.0 'setzt Bit 0 des Port B auf 1 Incr Portb 'Light Show mit dem STK200 Count = 0 Do Incr Count Portb = 1 For A = 1 To 8 Rotate Portb , Left 'Bits nach links rotieren Wait 1 Next 'Die folgenden 2 Zeilen machen das Gleich wie die Schleife oben. 'aber es gibt keine Verzögerung. ' Portb = 1 ' Rotate Portb , Left , 8 Loop Until Count = 10 Print "Ready" 'Beachten Sie dass ein AVR-Port ein Data Direction Register hat. 'Wenn man einen Pin für Eingabe benutzen möchte dann muss man das Data Direction Register vorher auf 0 setzen. 'Man kann das machen indem man das DDRx-Register mit Nullen beschreibt: 'DDRB =&B11110000 'setzt portb1.0, portb.1, portb.2 und portb.3 für die Verwendung als EINGABE-Pin. 'Also : Wenn Sie einen Pin für Eingabe benutzen wollen dann setzen Sie es im DDRx-Register vorher auf Null! ' und lesen Sie mit PINx ein ' und wenn Sie einen Pin für Ausgabe benutzen möchten dann schreiben Sie eine 1 in das DDRx-Register ' und schreiben Sie den Wert in PORTx End
Languages | English • Deutsch |
---|