Positron Compiler Documentation

Counter

Positron8 · Revision 4.0.6.5 · PDF page 133

Variable = Counter Pin, Period

Count the number of pulses that appear on pin during period, and store the result in variable.

Variable is a user-defined variable. Pin is a Port.Pin constant declaration i.e. PORTA.0. Period may be a constant, variable, or expression.

' Count the pulses that occur on PORTA.0 within a 100ms time period
' and displays the results.
  Device = 18F26K40          ' Select the device to compile for
  Declare Xtal = 16  ' Tell the compiler the device will be operating at 16MHz
  Declare Hserial_Baud = 9600  ' Set the Baud rate for HRsoutLn

  Dim MyWord as Word          ' Create a word size variable
  Dim MyPin as PORTA.0        ' Assign the input pin to PORTA.0
  Cls

  Do
    MyWord = Counter MyPin, 100  ' Variable MyWord now contains the Count
    HRsoutLn Dec MyWord, " "  ' Display the decimal result on a serial terminal
  Loop                       ' Do it indefinitely

The resolution of period is in milliseconds (ms). It obtains its scaling from the oscillator declaration, Declare Xtal.

Counter checks the state of the pin in a loop, and counts the rising edge of a transition (low to high).

With a 4MHz oscillator, the pin is checked every 20us, and every 4us with a 20MHz oscillator. From this we can determine that the highest frequency of pulses that may be counted is: -

25KHz using a 4MHz oscillator. 125KHz using a 20MHz oscillator.

See also : PulseIn, Rcin.

View original PDF page 133Open page in PDFOriginal PDF page 133