CONFIG PORT/de
m (1 revision) |
(→(**COPIED FROM ENGLISH PAGE**) =) |
||
Line 1: | Line 1: | ||
− | + | = <span class="f_Header">Funktion</span> = | |
− | + | Setzt den Port oder einen Portpin auf die gewünschte Datenrichtung. | |
<span style="font-family: Arial;"> </span> | <span style="font-family: Arial;"> </span> |
Revision as of 22:56, 8 March 2013
Contents |
Funktion
Setzt den Port oder einen Portpin auf die gewünschte Datenrichtung.
Syntax
CONFIG PORTx = state
CONFIG PINx.y = state
Remarks
state |
A numeric constant that can be INPUT or OUTPUT.
INPUT will set the data direction register to input for port X. OUTPUT will set the data direction to output for port X. You can also use a number for state. &B00001111, will set the upper nibble to input and the lower nibble to output.
You can also set a single port pin with the CONFIG PIN = state, statement. Again, you can use INPUT, OUTPUT or a number. In this case the number can be only zero or one. |
x |
A valid port letter such as A,B,C etc. Example : CONFIG PORTB = Output |
y |
A valid pin number in the range of 0-7. Example : CONFIG PINB.0=INPUT |
The best way to set the data direction for more than 1 pin, is to use the CONFIG PORT, statement and not multiple lines with CONFIG PIN statements.
You may not use variables for the port letters and pin numbers. If you need to dynamically set a pin direction, you can use this form : SET PORTB.somepin , where somepin may be a constant or a variable.
If the the port itself is also dynamic, then you could use OUT with the proper address.
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 |
---|