''

Dependencies:   BME280 BMP280 TextLCD mbed

Fork of CW_watchdog_08012018a by Calvin Kalintra

main.cpp

Committer:
ckalintra
Date:
2018-01-09
Revision:
5:8aa72ee456fc
Parent:
4:5dbb5145d0a9

File content as of revision 5:8aa72ee456fc:

#include "mbed.h"
#include "TextLCD.h"
#include "BME280.h"
#include "sd.h"
#define watchdog_time 15
//DigitalOut myled(LED1);
int dislcd = 0, wdcounter = 0, watchdog = 0;
float T = 15;
char ch = 0;
Ticker display;
Ticker second_pass;
InterruptIn button(USER_BUTTON);

//NVIC_SetPriority(display, 0);     
//NVIC_SetPriority(second_pass, 1);
//NVIC_SetPriority(button, 1);


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()
{
    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;}
}


int main()
{
    lcd.cls();
    
    //display_date_time();
//    while (pointer != 14)
//    {
//        select_date();
//    }
    //bmp.initialize();
    pc.printf("\n\rputty ready\n\r");
    display.attach(&lcddisp, T);
    second_pass.attach(&second_tick, 1.0);
    button.rise(&check_display);
    while(1)
    {
        check_display();
        if (putty_enabled == 1)
        {
            //watchdog();
            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();
//        }
    }
}