Positron Compiler Documentation

High (PinHigh)

Positron8 · Revision 4.0.6.5 · PDF pages 147–148

High Port or Port.Pin or Pin Number

or

PinHigh Port or Port.Pin or Pin Number

Place a Port or Port.Pin in a high output state. For a Port, this means setting it as an output and filling it with 1's. The name PinHigh can also be used instead of the name High. They both work exactly the same but make the source code a little clearer to read and follow.

Port must be the name of a Port. Port.Pin must be a Port.Pin combination. Pin Number can be any variable or constant holding 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…

Device = 18F26K40          ' Select the device to compile for
Declare Xtal = 16  ' Tell the compiler the device will be operating at 16MHz

Symbol LED = PORTB.4

High LED                     ' Set Pin PORTB.4 output high
High 1                     ' Set Pin PORTA.1 output high
High Pin_B0                ' Set Pin PORTB.0 output high
PinHigh PORTB.4             ' Set Pin PORTB.4 output high
' Flash each of the pins on PORTA and PORTB
'
    Device = 18F25K20
    Declare Xtal = 16

    Dim MyPin as Byte

    For MyPin = 0 to 15        ' Create a loop for the pin to flash
        High MyPin             ' Set the pin high
        DelayMs 500            ' Delay so that it can be seen
        Low MyPin              ' Pull the pin low
        DelayMs 500            ' Delay so that it can be seen
    Next
View original PDF page 147Open page in PDFOriginal PDF page 147

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. 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 subroutine
'
  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 value as the pin to adjust
'
Proc FlashPin()
  High PinNumber                  ' Set the pin output high
  DelayMs 500                    ' Wait for 500 milliseconds
  Low PinNumber                  ' Pull the pin low
  DelayMs 500                    ' Wait for 500 milliseconds
EndProc
' 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                ' Clear each pin of PORTC
       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
       DelayMs 100                  ' Slow things down to see what's happening
     Next                           ' Close the loop
  Loop                             ' Do it forever

See also : Clear, PinClear, Dim, Low, Set, PinSet, Symbol, PinGet.

View original PDF page 148Open page in PDFOriginal PDF page 148