Counter
Positron8 · Revision 4.0.6.5 · PDF page 133
Syntax
Variable = Counter Pin, Period
Overview
Count the number of pulses that appear on pin during period, and store the result in variable.
Parameters
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.
Example
' 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
Notes
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.
