edge / Mbed 2 deprecated testReedSimple

Dependencies:   libmDot mbed-rtos mbed

main.cpp

Committer:
boddeke
Date:
2016-05-25
Revision:
2:a2371a150758
Parent:
1:e504b1f72d05
Child:
3:238fa32bcb32

File content as of revision 2:a2371a150758:

#include "mbed.h"
#include "rtos.h"
#include "mDot.h"
#include "MTSLog.h"
#include "MTSText.h"

using namespace mts;


#define REED_PORT   PA_0

DigitalIn reed_sensor(PA_0, PullUp);

RawSerial pc(PA_2,NC);

volatile int reed_has_changed = 0;

void isr_reed_sensor_change(void) {
    reed_has_changed++;
}

main() {
    
    pc.baud(115200);
    
    pc.printf("Build: " __DATE__ ", " __TIME__"\r\n");
    
    mDot* dot = mDot::getInstance();
    dot->setLogLevel(MTSLog::TRACE_LEVEL);

    if(dot->getStandbyFlag()){
        pc.printf("clearing standby flag\r\n");
        PWR->CSR &= ~PWR_CSR_EWUP;
    }

    // DigitalIn reed_sensor(REED_PORT);
    // reed_sensor.mode(PullUp);

    InterruptIn reed_sensor_change(REED_PORT);
    reed_sensor_change.fall(&isr_reed_sensor_change);
    reed_sensor_change.rise(&isr_reed_sensor_change);
    reed_sensor_change.mode(PullUp);
 
    while(1) {
        
         for(int i=0;i<10;i++) {
         
            pc.printf("Read %d, Changes: %d\r\n",reed_sensor.read(),reed_has_changed);
            wait(1.0);
         }
         
         dot->sleep((int)10, mDot::RTC_ALARM_OR_INTERRUPT, true);
    }
}