CONFIG PORT/de
(→(**COPIED FROM ENGLISH PAGE**) =) |
(→Remarks) |
||
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. | ||
| | ||
Revision as of 23:16, 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.
See Also
Example
'----------------------------------------------------------------------------------------- '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" ' specify the used micro $crystal = 4000000 ' used crystal frequency $baud = 19200 ' use baud rate $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 'configure PORT D for input mode Config Portd = Input 'reading the PORT, will read the latch, that is the value 'you have written to the PORT. 'This is not the same as reading the logical values on the pins! 'When you want to know the logical state of the attached hardware, 'you MUST use the PIN register. A = Pind 'a port or SFR can be treated as a byte A = A And Portd Print A 'print it Bitwait Pind.7 , Reset 'wait until bit is low 'We will use port B for output Config Portb = Output 'assign value Portb = 10 'set port B to 10 Portb = Portb And 2 Set Portb.0 'set bit 0 of port B to 1 Incr Portb 'Now a light show on the STK200 Count = 0 Do Incr Count Portb = 1 For A = 1 To 8 Rotate Portb , Left 'rotate bits left Wait 1 Next 'the following 2 lines do the same as the previous loop 'but there is no delay ' Portb = 1 ' Rotate Portb , Left , 8 Loop Until Count = 10 Print "Ready" 'Again, note that the AVR port pins have a data direction register 'when you want to use a pin as an input it must be set low first 'you can do this by writing zeros to the DDRx: 'DDRB =&B11110000 'this will set portb1.0,portb.1,portb.2 and portb.3 to use as inputs. 'So : when you want to use a pin as an input set it low first in the DDRx! ' and read with PINx ' and when you want to use the pin as output, write a 1 first ' and write the value to PORTx End
Languages | English • Deutsch |
---|