![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
.
Dependencies: BME280 BMP280 TextLCD mbed
Fork of CW_watchdog_09012018_copy by
main.cpp
- Committer:
- FranciscoSalle
- Date:
- 2018-01-10
- Revision:
- 6:f95438838ece
- Parent:
- 5:8aa72ee456fc
File content as of revision 6:f95438838ece:
#include "mbed.h" #include "TextLCD.h" #include "BME280.h" #include "net.h" #define watchdog_time 15 //DigitalOut myled(LED1); int dislcd = 1, wdcounter = 0, watchdog = 0, netflag = 1; float T = 15; char ch = 0; Ticker display; Ticker second_pass; InterruptIn button(USER_BUTTON); //InterruptIn button2(PE_12); //osThreadId mainThreadID; //NVIC_SetPriority(display, 0); //NVIC_SetPriority(second_pass, 1); //NVIC_SetPriority(button, 1); //void network_main() //{ // while(1) // { // network(); // } //} void second_tick() { ss++; if(watchdog == 1) { wdcounter++; } time_rule(); day_check(); lcd.cls(); if (dislcd == 1) { lcd.locate(10,0); lcd.printf("l:%1.2f", lvl); lcd.locate(0,0); lcd.printf("p:%5.1f", pressuref); lcd.locate(10,1); lcd.printf("t:%3.1f", tempf); display_time(); } else if (dislcd == 0) { display_dates(); display_time(); } if (wdcounter >= watchdog_time) { pc.printf("system stuck, reset\n\r"); NVIC_SystemReset(); } } void watchdog_start() { wdcounter = 0; watchdog = 1; } void lcddisp() { if (gather_data == 1) { redLED = 1; display_time(); getdata(); store(); redLED = 0; } if (gather_data ==0) { redLED = 1; wait(0.2); } } void check_display() { if(dislcd == 0) {dislcd = 1;} else {dislcd = 0;} } void network_bit() { network(); //osSignalSet(mainThreadID, 0x1); } void putty_main() { while(1) { if (putty_enabled == 1) { //watchdog_start(); pc.printf("\n\rputty ready\n\r"); //stdio_mutex.lock(); putty_write(); //stdio_mutex.unlock(); //watchdog = 0; } if (putty_enabled == 0) { while(ch != 'p') { ch = 0; yellowLED = 1; ch = pc.getc(); } putty_enabled = 1; } yellowLED = 0; check_display(); if (interrupt == 1) { T = t; display.attach(&lcddisp, T); interrupt = 0; } } } int main() { //network_bit(); lcd.cls(); //getdata(); //display_date_time(); // while (pointer != 14) // { // select_date(); // } //bmp.initialize(); //t1.start(network_main); //Thread t2(osPriorityBelowNormal); //Thread t1(osPriorityAboveNormal); display.attach(&lcddisp, T); second_pass.attach(&second_tick, 1.0); //net_tick.attach(&network, 15); button.rise(&check_display); network(); while(1) { Thread t2; Thread t1; t1.start(network_bit); Thread::wait(2000); t1.terminate(); t2.start(putty_main); Thread::wait(13000); t2.terminate(); //check_display(); // if (putty_enabled == 1) // { // //watchdog_start(); // putty_write(); // //watchdog = 0; // } // // if (putty_enabled == 0) // { // while(ch != 'p') // { // ch = 0; // yellowLED = 1; // ch = pc.getc(); // } // putty_enabled = 1; // } // yellowLED = 0; // check_display(); // if (interrupt == 1) // { // T = t; // display.attach(&lcddisp, T); // interrupt = 0; // } //if(sw1 == 1 && sw2 == 1) // { // sd(); // } } }