Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
PulseCounter Class Reference
Counts pulses on pin29 coming in with a frequency up to 48 MHz. More...
#include <PulseCounter.h>
Public Member Functions | |
| void | init () |
| Initializer for PulseCounter instance. | |
| void | start () |
| Start counter. | |
| void | stop () |
| Stop counter. | |
| void | counterArray (uint32_t *counterArray, int counterArrayLength) |
| Read pulse count results into external array. | |
Detailed Description
Counts pulses on pin29 coming in with a frequency up to 48 MHz.
The counter is read (and reset to 0) by rising edge (trigger event) on pin30. These events can be triggered at a rate up to 9kHz. The counter results are stored in a "circular array" of 20 elements. ("circular array" = array pointer increments each time a new value is stored into the array; if pointer reaches last element, it is redirected to first element)
Definition at line 30 of file PulseCounter.h.
Member Function Documentation
| void counterArray | ( | uint32_t * | counterArray, |
| int | counterArrayLength | ||
| ) |
Read pulse count results into external array.
Do not call this method before you called method stop() - otherwise it will return zeros.
- Parameters:
-
counterArray = Pointer to array in which the pulse count results should be read into. counterArrayLength = Size of counterArray. Should be 20 or less. If more than 20, remaining elements will be filled with zeros. #include "mbed.h" #include "PwmOscillator.h" #include "PulseCounter.h" Serial usbPC(USBTX, USBRX); // sends log messages via USB to PC terminal PwmOscillator pulseGenerator; // generates pulses to be count (48 MHz) on pin p22. Connect this pin to p29 (counter input). PulseCounter pulseCounter; // counts the pulses on pin p29 between trigger events (= rising edges) on pin p30. int main() { usbPC.printf("---> start <---\n"); pulseGenerator.initWithFrequency(48000000); pulseCounter.init(); pulseGenerator.start(); pulseCounter.start(); wait(1); // waiting 1 second for trigger events (pin30: rising edge). Count pulses between trigger events. pulseCounter.stop(); pulseGenerator.stop(); // read & print pulseCounter results int pulseCounterResults[20]; pulseCounter.counterArray(&pulseCounterResults[0],sizeof pulseCounterResults / sizeof (int)); for(int i = 0; i < (sizeof pulseCounterResults / sizeof (int)); i++) { usbPC.printf("counter of trigger event %i = %i\n",i,pulseCounterResults[i]); } // usbPC.printf(" finished.\n"); }
Definition at line 86 of file PulseCounter.cpp.
| void init | ( | ) |
Initializer for PulseCounter instance.
Definition at line 26 of file PulseCounter.cpp.
| void start | ( | ) |
Start counter.
Definition at line 61 of file PulseCounter.cpp.
| void stop | ( | ) |
Stop counter.
Definition at line 78 of file PulseCounter.cpp.
Generated on Fri Jul 15 2022 01:47:36 by
1.7.2