Different led blinks based on different position of the board
Dependencies: BSP_B-L475E-IOT01 mbed
main.cpp@1:b5009b4d5294, 2018-11-14 (annotated)
- 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?
User | Revision | Line number | New 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 | } |