Version 5
Dependencies: BMP280 TextLCD BME280
Sampler.hpp
- Committer:
- O_Thom
- Date:
- 2018-11-25
- Revision:
- 1:f89c930c6491
- Parent:
- 0:f9a18207d99c
- Child:
- 2:38d31b2e0956
File content as of revision 1:f89c930c6491:
#include "mbed.h" #define Activate_Flag 1 class Sampler { friend class Ticker; // Share the private and protected sections to the non-member function private: Ticker t; // Time Initialisation Thread t1; // Sample Thread public: void start() { t.attach(Callback<void()>(this, &Sampler::doISR), 15); post(); // Hardware Testing } void doISR() { t1.signal_set(Activate_Flag); // Signal the sampling thread to move from WAITING to READY } void mailqueuePush() { } static void samplingThread() { int idx = 0; while(1) { Thread::signal_wait(Activate_Flag); idx++; printf("\033[2J"); // Clear screen printf("\033[H"); // Home Position printf("**********Sample %d**********\n", idx); printf("SW1: %d\tSW2: %d\n\r", SW1.read(), SW2.read()); printf("LDR: %3.5f\n\r", adcIn.read()*4095); float temp = sensor.getTemperature(); float pressure = sensor.getPressure(); #ifdef BME float humidity = sensor.getHumidity(); #endif printf("Temperature: %5.1f\n", temp); printf("Pressure: %5.1f\n", pressure); #ifdef BME printf("Pressure: %5.1f\n", humidity); #endif puts("**********POST END**********"); } } Sampler() { //Constructor // IDs osThreadId idMain; osThreadId idSample; idMain = osThreadGetId(); // CMSIS RTOS Call idSample = t1.gettid(); // Assign the id to the thread handle (Check this) t1.start(samplingThread); // Start the sampling thread // NVIC_SetPriority(TIMER0_IRQn,osPriorityHigh); // Uncomment for priority setting in the NVIC } //Destructor - should the instance go out of scope, this is called ~Sampler() { t.detach(); } };