Latest

Dependencies:   serial_terminal sample_hardware PLL_Config SDCard BMP280 Networkbits TextLCD SDBlockDevice

Committer:
Swabey89
Date:
Fri Nov 09 17:58:40 2018 +0000
Revision:
8:c81b0ff8b822
Parent:
7:e2bf2d703867
Child:
9:fa8a35d9d6c0
Project now has readings displayed on LCD and writes to the SD card

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Swabey89 7:e2bf2d703867 1 #include "mbed.h"
Swabey89 1:31c7b4ab552b 2 #include "sample_hardware.hpp"
Swabey89 1:31c7b4ab552b 3 #include "Networkbits.hpp"
Swabey89 5:956984cbe447 4 #include "serial_terminal.hpp"
Swabey89 6:a5394c9e5927 5 #include "SDCard.hpp"
Swabey89 5:956984cbe447 6 #include "rtos.h"
Swabey89 7:e2bf2d703867 7 #include "mbed_events.h"
Swabey89 8:c81b0ff8b822 8 #include "LCDdisplay.hpp"
Swabey89 5:956984cbe447 9
Swabey89 8:c81b0ff8b822 10 #define TAKE_SAMPLE 1
Swabey89 8:c81b0ff8b822 11 #define SAMPLE_RATE 5
Swabey89 8:c81b0ff8b822 12
Swabey89 8:c81b0ff8b822 13 //Queues
Swabey89 8:c81b0ff8b822 14 EventQueue SDqueue;
Swabey89 8:c81b0ff8b822 15 EventQueue LCDqueue;
Swabey89 1:31c7b4ab552b 16
Swabey89 1:31c7b4ab552b 17 //Threads
Swabey89 8:c81b0ff8b822 18 Thread SDqueue_thread;
Swabey89 8:c81b0ff8b822 19 Thread LCDqueue_thread;
Swabey89 8:c81b0ff8b822 20 Thread sterm_thread;
Swabey89 8:c81b0ff8b822 21 Thread sample_thread(osPriorityHigh);
Swabey89 8:c81b0ff8b822 22 //Thread ntwkthread
Swabey89 0:4afd4940a189 23
Swabey89 8:c81b0ff8b822 24 Ticker sample;
Swabey89 8:c81b0ff8b822 25 void sampleISR(void);
Swabey89 8:c81b0ff8b822 26 void takesample(void);
Swabey89 8:c81b0ff8b822 27 void samples(void);
Swabey89 7:e2bf2d703867 28
Swabey89 7:e2bf2d703867 29
Swabey89 7:e2bf2d703867 30 int main() {
Swabey89 8:c81b0ff8b822 31 //Move threads into a thread init function?
Swabey89 8:c81b0ff8b822 32 SDqueue_thread.start(callback(&SDqueue, &EventQueue::dispatch_forever));
Swabey89 8:c81b0ff8b822 33 LCDqueue_thread.start(callback(&LCDqueue, &EventQueue::dispatch_forever));
Swabey89 8:c81b0ff8b822 34
Swabey89 8:c81b0ff8b822 35 sterm_thread.start(serialterm);
Swabey89 8:c81b0ff8b822 36 sample_thread.start(samples);
Swabey89 8:c81b0ff8b822 37
Swabey89 8:c81b0ff8b822 38 //Initialise, move into initialise function
Swabey89 8:c81b0ff8b822 39 SDcard();
Swabey89 5:956984cbe447 40
Swabey89 1:31c7b4ab552b 41 //Greeting
Swabey89 1:31c7b4ab552b 42 printf("Testing\n\n");
Swabey89 1:31c7b4ab552b 43
Swabey89 1:31c7b4ab552b 44 //Power on self test
Swabey89 1:31c7b4ab552b 45 post();
Swabey89 1:31c7b4ab552b 46
Swabey89 6:a5394c9e5927 47 printf("Send commands\n\r");
Swabey89 3:b1583f309b43 48
Swabey89 8:c81b0ff8b822 49 sample.attach(&sampleISR, SAMPLE_RATE);
Swabey89 1:31c7b4ab552b 50
Swabey89 1:31c7b4ab552b 51
Swabey89 1:31c7b4ab552b 52 //Flash to indicate goodness
Swabey89 1:31c7b4ab552b 53 while(true) {
Swabey89 5:956984cbe447 54 greenLED = !greenLED;
Swabey89 5:956984cbe447 55 Thread::wait(500);
Swabey89 0:4afd4940a189 56 }
Swabey89 0:4afd4940a189 57 }
Swabey89 1:31c7b4ab552b 58
Swabey89 8:c81b0ff8b822 59 void sampleISR()
Swabey89 8:c81b0ff8b822 60 {
Swabey89 8:c81b0ff8b822 61 sample_thread.signal_set(TAKE_SAMPLE);
Swabey89 8:c81b0ff8b822 62 }
Swabey89 8:c81b0ff8b822 63
Swabey89 8:c81b0ff8b822 64 void samples()
Swabey89 8:c81b0ff8b822 65 {
Swabey89 8:c81b0ff8b822 66 while(true)
Swabey89 8:c81b0ff8b822 67 {
Swabey89 8:c81b0ff8b822 68 //High priority thread
Swabey89 8:c81b0ff8b822 69 Thread::signal_wait(TAKE_SAMPLE);
Swabey89 8:c81b0ff8b822 70
Swabey89 8:c81b0ff8b822 71 double temp = sensor.getTemperature();
Swabey89 8:c81b0ff8b822 72 double pressure = sensor.getPressure();
Swabey89 8:c81b0ff8b822 73
Swabey89 8:c81b0ff8b822 74 //Pass onto queues
Swabey89 8:c81b0ff8b822 75 LCDqueue.call(LCD_display,temp,pressure);
Swabey89 8:c81b0ff8b822 76 SDqueue.call(SDaddSample,temp,pressure);
Swabey89 8:c81b0ff8b822 77 }
Swabey89 8:c81b0ff8b822 78 }
Swabey89 1:31c7b4ab552b 79
Swabey89 1:31c7b4ab552b 80
Swabey89 1:31c7b4ab552b 81