fuck this

Dependencies:   BMP280

Committer:
Swaggie
Date:
Wed Jan 03 16:37:33 2018 +0000
Revision:
6:8e1795a5886b
Parent:
5:bea93c8e50b7
Child:
7:bf9f92ff02e8
Worked on Sampling files

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Swaggie 4:2e6d9492b76d 1 #ifndef __Sampling__
Swaggie 4:2e6d9492b76d 2 #define __Sampling__
Swaggie 4:2e6d9492b76d 3
Swaggie 6:8e1795a5886b 4 #include "mbed.h"
Swaggie 6:8e1795a5886b 5
Swaggie 5:bea93c8e50b7 6 #ifdef BME
Swaggie 5:bea93c8e50b7 7 #include "BME280.h"
Swaggie 5:bea93c8e50b7 8 #else
Swaggie 5:bea93c8e50b7 9 #include "BMP280.h"
Swaggie 5:bea93c8e50b7 10 #endif
Swaggie 5:bea93c8e50b7 11
Swaggie 6:8e1795a5886b 12 #define BUFFERSIZE 120
Swaggie 6:8e1795a5886b 13
Swaggie 5:bea93c8e50b7 14 #ifdef BME
Swaggie 5:bea93c8e50b7 15 extern BME280 sensor;
Swaggie 5:bea93c8e50b7 16 #else
Swaggie 5:bea93c8e50b7 17 extern BMP280 sensor;
Swaggie 5:bea93c8e50b7 18 #endif
Swaggie 5:bea93c8e50b7 19
Swaggie 6:8e1795a5886b 20 //Thread Sync Tools
Swaggie 6:8e1795a5886b 21 Mutex tempReadingsLock;
Swaggie 6:8e1795a5886b 22 Mutex presReadingsLock;
Swaggie 6:8e1795a5886b 23 Mutex LDRReadingsLock;
Swaggie 6:8e1795a5886b 24
Swaggie 6:8e1795a5886b 25 //Buffers
Swaggie 6:8e1795a5886b 26 float tempReadings[BUFFERSIZE];
Swaggie 6:8e1795a5886b 27 float presReadings[BUFFERSIZE];
Swaggie 6:8e1795a5886b 28 float LDRReadings[BUFFERSIZE];
Swaggie 6:8e1795a5886b 29
Swaggie 6:8e1795a5886b 30 unsigned short newestTempIndex;
Swaggie 6:8e1795a5886b 31 //Position in the buffer of the newest sample
Swaggie 6:8e1795a5886b 32 unsigned short oldestTempIndex;
Swaggie 6:8e1795a5886b 33 //Position in the buffer of the oldest sample
Swaggie 6:8e1795a5886b 34
Swaggie 6:8e1795a5886b 35 Thread t1; //Sample Enviromental Sensor
Swaggie 6:8e1795a5886b 36 Thread t2; //Sample LDR Sensor
Swaggie 6:8e1795a5886b 37
Swaggie 6:8e1795a5886b 38 Ticker sampleRate;
Swaggie 6:8e1795a5886b 39 AnalogIn LDR(A13); //LDR Pin
Swaggie 6:8e1795a5886b 40
Swaggie 6:8e1795a5886b 41 /*These can be deleted I think
Swaggie 6:8e1795a5886b 42 extern float fLatestTemp;
Swaggie 6:8e1795a5886b 43 extern float fLatestLDR;
Swaggie 6:8e1795a5886b 44 extern float fLatestPres;
Swaggie 6:8e1795a5886b 45 */
Swaggie 6:8e1795a5886b 46
Swaggie 6:8e1795a5886b 47 extern bool NewEnvSample; //Is there new data from the envirom sensor to output?
Swaggie 6:8e1795a5886b 48 extern bool NewLDRSample; //Is there new data from the LDR to output?
Swaggie 6:8e1795a5886b 49
Swaggie 4:2e6d9492b76d 50 void SampleTimerISR(void);
Swaggie 4:2e6d9492b76d 51 //Called by ticker. Calls the sample funcs of each device by flagging the threads
Swaggie 4:2e6d9492b76d 52
Swaggie 4:2e6d9492b76d 53 void ConfigThreadsAndIR(void);
Swaggie 4:2e6d9492b76d 54 //Setup Interrupts and Threads
Swaggie 4:2e6d9492b76d 55
Swaggie 6:8e1795a5886b 56 void threadSampleEnvSensor(void);
Swaggie 6:8e1795a5886b 57 //when flagged by interrupt will capture a sample then calls the addtobufferfuncs
Swaggie 6:8e1795a5886b 58
Swaggie 6:8e1795a5886b 59 void AddTempSample(float* Temp);
Swaggie 6:8e1795a5886b 60 //Producer function
Swaggie 6:8e1795a5886b 61
Swaggie 6:8e1795a5886b 62 void AddPresSample(float* Pres);
Swaggie 6:8e1795a5886b 63 //Producer Function
Swaggie 6:8e1795a5886b 64
Swaggie 6:8e1795a5886b 65 void ThreadSampleLDR(void);
Swaggie 6:8e1795a5886b 66 //When flagged by interrupt will read LDR value.
Swaggie 6:8e1795a5886b 67
Swaggie 6:8e1795a5886b 68 void AddLDRSample(float* LDR);
Swaggie 6:8e1795a5886b 69 //Poducer Function
Swaggie 4:2e6d9492b76d 70
Swaggie 4:2e6d9492b76d 71 #endif