fuck this
Dependencies: BMP280
Diff: Sampling.h
- Revision:
- 6:8e1795a5886b
- Parent:
- 5:bea93c8e50b7
- Child:
- 7:bf9f92ff02e8
--- a/Sampling.h Tue Jan 02 13:29:00 2018 +0000 +++ b/Sampling.h Wed Jan 03 16:37:33 2018 +0000 @@ -1,25 +1,71 @@ #ifndef __Sampling__ #define __Sampling__ +#include "mbed.h" + #ifdef BME #include "BME280.h" #else #include "BMP280.h" #endif +#define BUFFERSIZE 120 + #ifdef BME extern BME280 sensor; #else extern BMP280 sensor; #endif +//Thread Sync Tools +Mutex tempReadingsLock; +Mutex presReadingsLock; +Mutex LDRReadingsLock; + +//Buffers +float tempReadings[BUFFERSIZE]; +float presReadings[BUFFERSIZE]; +float LDRReadings[BUFFERSIZE]; + +unsigned short newestTempIndex; +//Position in the buffer of the newest sample +unsigned short oldestTempIndex; +//Position in the buffer of the oldest sample + +Thread t1; //Sample Enviromental Sensor +Thread t2; //Sample LDR Sensor + +Ticker sampleRate; +AnalogIn LDR(A13); //LDR Pin + +/*These can be deleted I think +extern float fLatestTemp; +extern float fLatestLDR; +extern float fLatestPres; +*/ + +extern bool NewEnvSample; //Is there new data from the envirom sensor to output? +extern bool NewLDRSample; //Is there new data from the LDR to output? + void SampleTimerISR(void); //Called by ticker. Calls the sample funcs of each device by flagging the threads void ConfigThreadsAndIR(void); //Setup Interrupts and Threads -void InitiateHW(void); -// +void threadSampleEnvSensor(void); +//when flagged by interrupt will capture a sample then calls the addtobufferfuncs + +void AddTempSample(float* Temp); +//Producer function + +void AddPresSample(float* Pres); +//Producer Function + +void ThreadSampleLDR(void); +//When flagged by interrupt will read LDR value. + +void AddLDRSample(float* LDR); +//Poducer Function #endif \ No newline at end of file