Different led blinks based on different position of the board

Dependencies:   BSP_B-L475E-IOT01 mbed

Committer:
iandil
Date:
Wed Nov 14 13:08:58 2018 +0000
Revision:
1:b5009b4d5294
Parent:
0:fe91cf93b0c9
Finished Exercise

Who changed what in which revision?

UserRevisionLine numberNew contents of line
iandil 0:fe91cf93b0c9 1 #include "mbed.h"
iandil 0:fe91cf93b0c9 2 #include "stm32l475e_iot01_accelero.h"
iandil 0:fe91cf93b0c9 3
iandil 0:fe91cf93b0c9 4 DigitalOut led1(LED1);
iandil 0:fe91cf93b0c9 5 DigitalOut led2(LED2);
iandil 0:fe91cf93b0c9 6 DigitalOut led3(LED3);
iandil 1:b5009b4d5294 7
iandil 1:b5009b4d5294 8 void blink_led(int led1On, int led2On, int led3On, int reset, DigitalOut led = LED4) {
iandil 1:b5009b4d5294 9 led1 = led1On;
iandil 1:b5009b4d5294 10 led2 = led2On;
iandil 1:b5009b4d5294 11 led3 = led3On;
iandil 1:b5009b4d5294 12 wait(1);
iandil 1:b5009b4d5294 13 if(reset) {
iandil 1:b5009b4d5294 14 led1 = 0;
iandil 1:b5009b4d5294 15 led2 = 0;
iandil 1:b5009b4d5294 16 led3 = 0;
iandil 1:b5009b4d5294 17 } else {
iandil 1:b5009b4d5294 18 led = !led;
iandil 1:b5009b4d5294 19 }
iandil 1:b5009b4d5294 20 }
iandil 1:b5009b4d5294 21
iandil 0:fe91cf93b0c9 22 int main()
iandil 0:fe91cf93b0c9 23 {
iandil 0:fe91cf93b0c9 24 int16_t pDataXYZ[3] = {0};
iandil 0:fe91cf93b0c9 25
iandil 0:fe91cf93b0c9 26 BSP_ACCELERO_Init();
iandil 0:fe91cf93b0c9 27
iandil 0:fe91cf93b0c9 28 while(1) {
iandil 0:fe91cf93b0c9 29 BSP_ACCELERO_AccGetXYZ(pDataXYZ);
iandil 0:fe91cf93b0c9 30 printf("\nACCELERO_X = %d\n", pDataXYZ[0]);
iandil 0:fe91cf93b0c9 31 printf("ACCELERO_Y = %d\n", pDataXYZ[1]);
iandil 0:fe91cf93b0c9 32 printf("ACCELERO_Z = %d\n", pDataXYZ[2]);
iandil 0:fe91cf93b0c9 33
iandil 1:b5009b4d5294 34 if(pDataXYZ[2] > 900 || pDataXYZ[2] < -900) { //Horizontal State
iandil 1:b5009b4d5294 35 blink_led(1, 0, 0, 0, led1);
iandil 1:b5009b4d5294 36 } else if(pDataXYZ[1] > 900 || pDataXYZ[1] < -900) { //Long Edge State
iandil 1:b5009b4d5294 37 blink_led(0, 1, 0, 0, led2);
iandil 1:b5009b4d5294 38 } else if(pDataXYZ[0] > 900 || pDataXYZ[0] < -900) { // Short Edge State
iandil 1:b5009b4d5294 39 blink_led(0, 0, 1, 0, led3);
iandil 1:b5009b4d5294 40 } else { // all other positions
iandil 1:b5009b4d5294 41 blink_led(1, 1, 1, 1);
iandil 0:fe91cf93b0c9 42 }
iandil 0:fe91cf93b0c9 43 }
iandil 0:fe91cf93b0c9 44 }