AirDemo1
Dependencies: BLE_API mbed nRF51822
main.cpp
- Committer:
- AndreaP
- Date:
- 2016-05-19
- Revision:
- 0:2b43978ace0e
File content as of revision 0:2b43978ace0e:
#include "mbed.h" #include "nRF5xGap.h" #define DEMOBOARD 1 #if DEMOBOARD InterruptIn powerButtonOn(P0_17); InterruptIn powerButtonOff(P0_18); DigitalOut greenLed(P0_21); DigitalOut blueLed(P0_22); DigitalOut redLed(P0_23); #else InterruptIn powerButton(P0_18); DigitalOut greenLed(P0_12); DigitalOut blueLed(P0_15); DigitalOut redLed(P0_16); #endif #if DEMOBOARD #define LED_ON 0 #define LED_OFF 1 #else #define LED_ON 1 #define LED_OFF 0 #endif volatile uint8_t state = 255; Ticker timer; volatile uint8_t lastState = 0; void powerButtonOnPressedCallback(void) { //NRF_POWER->SYSTEMOFF=0; state= 1; } void powerButtonOffPressedCallback(void) { //NRF_POWER->SYSTEMOFF=1; state= 11; } void cbToON() { timer.detach(); state = 2; } void cbToOFF() { timer.detach(); state = 12; } int main() { //set event button powerButtonOn.fall(powerButtonOnPressedCallback); powerButtonOff.fall(powerButtonOffPressedCallback); blueLed = LED_OFF; greenLed = LED_OFF; redLed = LED_OFF; printf("\r\nInit\r\n"); //NRF_POWER->SYSTEMOFF=0; //power ON //sd_power_system_off(); while(1) { if(lastState != state) { lastState = state; printf("STATO %d\r\n", state); } switch(state) { case 1: printf("Stato 1\r\n"); blueLed = LED_ON; timer.attach(cbToON, 1.0); state = 255; break; case 2: printf("Stato 2\r\n"); NRF_POWER->SYSTEMOFF=0; //power ON state = 255; break; case 11: printf("Stato 11\r\n"); blueLed = LED_OFF; timer.attach(cbToOFF, 1.0); state = 255; break; case 12: printf("Stato 12\r\n"); NRF_POWER->SYSTEMOFF=1; //power OFF break; case 255: break; default: break; } } }