Different led blinks based on different position of the board
Dependencies: BSP_B-L475E-IOT01 mbed
Diff: main.cpp
- Revision:
- 1:b5009b4d5294
- Parent:
- 0:fe91cf93b0c9
--- a/main.cpp Wed Nov 14 12:13:53 2018 +0000 +++ b/main.cpp Wed Nov 14 13:08:58 2018 +0000 @@ -4,6 +4,21 @@ DigitalOut led1(LED1); DigitalOut led2(LED2); DigitalOut led3(LED3); + +void blink_led(int led1On, int led2On, int led3On, int reset, DigitalOut led = LED4) { + led1 = led1On; + led2 = led2On; + led3 = led3On; + wait(1); + if(reset) { + led1 = 0; + led2 = 0; + led3 = 0; + } else { + led = !led; + } +} + int main() { int16_t pDataXYZ[3] = {0}; @@ -16,32 +31,14 @@ printf("ACCELERO_Y = %d\n", pDataXYZ[1]); printf("ACCELERO_Z = %d\n", pDataXYZ[2]); - if(pDataXYZ[2] > 900 || pDataXYZ[2] < -900) { - led1 = 1; - led2 = 0; - led3 = 0; - wait(1); - led1 = 0; - } else if(pDataXYZ[1] > 900 || pDataXYZ[1] < -900) { - led2 = 1; - led1 = 0; - led3 = 0; - wait(1); - led2 = 0; - } else if(pDataXYZ[0] > 900 || pDataXYZ[0] < -900) { - led3 = 1; - led2 = 0; - led1 = 0; - wait(1); - led3 = 0; - } else { - led1 = 1; - led2 = 1; - led3 = 1; - wait(1); - led1 = 0; - led2 = 0; - led3 = 0; + if(pDataXYZ[2] > 900 || pDataXYZ[2] < -900) { //Horizontal State + blink_led(1, 0, 0, 0, led1); + } else if(pDataXYZ[1] > 900 || pDataXYZ[1] < -900) { //Long Edge State + blink_led(0, 1, 0, 0, led2); + } else if(pDataXYZ[0] > 900 || pDataXYZ[0] < -900) { // Short Edge State + blink_led(0, 0, 1, 0, led3); + } else { // all other positions + blink_led(1, 1, 1, 1); } } } \ No newline at end of file