Low (PinLow)
Syntax
Low Port or Port.Bit or Pin Number
or
PinLow Port or Port.Pin or Pin Number
Overview
Place a Port or a Port.Pin in a low output state. For a port, this means setting it as an output and filling it with 0's. The name PinOutput can also be used instead of the name Output. They both work exactly the same but make the source code a little clearer to read and follow.
Parameters
Port must be the name of a Port. Port.Bit must be any valid port and bit combination, i.e. PORTA.1 Pin Number can be a variable or constant that holds a value from 0 to the amount of I/O pins on the device. A value of 0 will be PORTA.0, if present, 1 will be PORTA.1, 8 will be PORTB.0 etc…
Example 1
Symbol LED = PORTB.4
Low LED ' Make Pin PORTB.4 a low output
Low 1 ' Make Pin PORTA.1 a low output
PinLow PORTB.0 ' Make pin-0 of PORTB a low output
Example 2
' Flash each of the pins on PORTA and PORTB
'
Device = 18F26K40 ' Select the device to compile for
Declare Xtal = 16 ' Tell the compiler the device will be operating at 16MHz
Dim MyPin as Byte
For MyPin = 0 to 15 ' Create a loop for the pin to flash
High MyPin ' Set the pin as an output high
DelayMs 500 ' Delay so that it can be seen
Low MyPin ' Pull the pin as an output low
DelayMs 500 ' Delay so that it can be seen
Next
Notes.
Each pin number has a designated name. These are Pin_A0…Pin_A7, Pin_B0…Pin_B7, Pin_C0…Pin_C7, Pin_D0…Pin_D7 to Pin_L7 etc… Each of the names has a relevant constant value, for example, Pin_A0 has the value 0, Pin_B0 has the value 8, up to Pin_L7, which has the value 87. For 8-pin devices, the pins can be referenced as Pin_IO0...Pin_IO5. The pin names can be found within the device’s .def file, within the compiler’s directory.
These can be used to pass a relevant pin number to a procedure. For example:
'
' Flash an LED attached to PORTB.0 via a procedure
' Then flash an LED attached to PORTB.1 via the same procedure
'
Device = 18F26K40 ' Select the device to compile for
Declare Xtal = 16 ' Tell the compiler the device will be operating at 16MHz
Dim PinNumber As Byte ' Holds the pin number to set high and low
Do ' Create an infinite loop
PinNumber = Pin_B0 ' Give the pin number to flash (PORTB.0)
FlashPin() ' Call the procedure to flash the pin
PinNumber = Pin_B1 ' Give the pin number to flash (PORTB.1)
FlashPin() ' Call the procedure to flash the pin
Loop ' Do it forever
'
' Set a pin high then low for 500ms using a variable as the pin to adjust
'
Proc FlashPin()
High PinNumber ' Set the pin as an output high
DelayMs 500 ' Wait for 500 milliseconds
Low PinNumber ' Pull the pin as an output low
DelayMs 500 ' Wait for 500 milliseconds
EndProc
Example 2
' Clear then Set each pin of PORTC
Device = 18F26K40 ' Select the device to compile for
Declare Xtal = 16 ' Tell the compiler the device will be operating at 16MHz
Dim PinNumber as Byte
Low PORTC ' Make PORTC output low before we start
Do ' Create a loop
For PinNumber = Pin_C0 to Pin_C7 ' Create a loop for 8 pins
Low PinNumber ' Pull each pin of PORTC as an output low
DelayMs 100 ' Slow things down to see what's happening
Next ' Close the loop
For PinNumber = Pin_C0 to Pin_C7 ' Create a loop for 8 pins
High PinNumber ' Set each pin of PORTC as an output high
DelayMs 100 ' Slow things down to see what's happening
Next ' Close the loop
Loop ' Do it forever
See also : High, Symbol, PinClear, PinMode, PinPullup, PinSet, PinGet.

