Latest
Dependencies: serial_terminal sample_hardware PLL_Config SDCard BMP280 Networkbits TextLCD SDBlockDevice
main.cpp
- Committer:
- Swabey89
- Date:
- 2018-11-10
- Revision:
- 10:0fffc988d325
- Parent:
- 9:fa8a35d9d6c0
- Child:
- 11:3ad0327e8c9f
File content as of revision 10:0fffc988d325:
#include "mbed.h" #include "sample_hardware.hpp" #include "Networkbits.hpp" #include "serial_terminal.hpp" #include "SDCard.hpp" #include "rtos.h" #include "mbed_events.h" #include "LCDdisplay.hpp" //Signals #define TAKE_SAMPLE 1 float sample_rate = 15; //bool sample_enable = true; //Queues EventQueue SDqueue; EventQueue LCDqueue; //Threads Thread SDqueue_thread(32*EVENTS_EVENT_SIZE); Thread LCDqueue_thread(32*EVENTS_EVENT_SIZE); Thread sterm_thread; Thread sample_thread(osPriorityHigh); //Thread ntwkthread Ticker sample; void sampleISR(void); void takesample(void); void samples(void); FILE* fp; FATFileSystem* fs; int main() { //Move threads into a thread init function? SDqueue_thread.start(callback(&SDqueue, &EventQueue::dispatch_forever)); LCDqueue_thread.start(callback(&LCDqueue, &EventQueue::dispatch_forever)); sterm_thread.start(serialterm); sample_thread.start(samples); //Initialise, move into initialise function SDcard(); //Greeting printf("Testing\n\n"); //Power on self test post(); printf("Send commands\n\r"); sample.attach(&sampleISR, sample_rate); //Flash to indicate goodness while(true) { greenLED = !greenLED; Thread::wait(500); } } void sampleISR() { sample_thread.signal_set(TAKE_SAMPLE); } void samples() { while(true) { //High priority thread Thread::signal_wait(TAKE_SAMPLE); double temp = sensor.getTemperature(); double pressure = sensor.getPressure(); //Pass onto queues LCDqueue.call(LCD_display,temp,pressure); SDqueue.call(SDaddSample,temp,pressure); } }