pulse sensor library
Dependents: Pedometer_ticker 4180_Fitbit_rtos 4180_Fitness_Tracker
Revision 1:2d8deec7cae7, committed 2020-04-21
- Comitter:
- memig3
- Date:
- Tue Apr 21 22:52:00 2020 +0000
- Parent:
- 0:e80a245c4d0d
- Commit message:
- pulse sensor library;
Changed in this revision
PulseSensor.cpp | Show annotated file Show diff for this revision Revisions of this file |
PulseSensor.h | Show annotated file Show diff for this revision Revisions of this file |
diff -r e80a245c4d0d -r 2d8deec7cae7 PulseSensor.cpp --- a/PulseSensor.cpp Sun Feb 09 15:37:19 2014 +0000 +++ b/PulseSensor.cpp Tue Apr 21 22:52:00 2020 +0000 @@ -10,8 +10,18 @@ _callbackRateMs = callbackRateMs; _printDataCallback = printDataCallback; + + proc = true; } +PulseSensor::PulseSensor(PinName analogPin) +{ + _started = false; + + _pAin = new AnalogIn(analogPin); + + proc = false; +} PulseSensor::~PulseSensor() { @@ -126,7 +136,9 @@ QS = false; _pulseSensorTicker.attach(this, &PulseSensor::sensor_ticker_callback, ((float)_sensorTickRateMs/1000)); - _processDataTicker.attach(this, &PulseSensor::process_data_ticker_callback, ((float)_callbackRateMs/1000)); + if(proc) { + _processDataTicker.attach(this, &PulseSensor::process_data_ticker_callback, ((float)_callbackRateMs/1000));\ + } _started = true; return true; } @@ -149,4 +161,12 @@ { return false; } +} + +int PulseSensor::get_BPM() +{ + if(_started) + { + return BPM; + } } \ No newline at end of file
diff -r e80a245c4d0d -r 2d8deec7cae7 PulseSensor.h --- a/PulseSensor.h Sun Feb 09 15:37:19 2014 +0000 +++ b/PulseSensor.h Tue Apr 21 22:52:00 2020 +0000 @@ -17,6 +17,7 @@ class PulseSensor { private: + volatile bool proc; volatile int rate[10]; // used to hold last ten IBI values volatile unsigned long sampleCounter; // used to determine pulse timing volatile unsigned long lastBeatTime; // used to find the inter beat interval @@ -54,6 +55,7 @@ * @param callbackRateMs Rate at which the printDataCallback is to be called, recommended is 20ms for graphing of pulse signal. */ PulseSensor(PinName analogPin, void (*printDataCallback)(char,int), int callbackRateMs=20); + PulseSensor(PinName analogPin); /** Destructor */ ~PulseSensor(); @@ -67,6 +69,8 @@ * @return true if reading is stopped, false if reading was already stopped. */ bool stop(); + + int get_BPM(); }; #endif \ No newline at end of file