DISCO-SensorsButton
Dependencies: BSP_B-L475E-IOT01 mbed
Revision 2:6176df9d5116, committed 2018-11-15
- Comitter:
- redona
- Date:
- Thu Nov 15 17:00:51 2018 +0000
- Parent:
- 1:dce931d77528
- Commit message:
- DISCOSensorsButton
Changed in this revision
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
diff -r dce931d77528 -r 6176df9d5116 main.cpp --- a/main.cpp Fri Nov 09 15:39:17 2018 +0000 +++ b/main.cpp Thu Nov 15 17:00:51 2018 +0000 @@ -9,6 +9,14 @@ #include "stm32l475e_iot01_accelero.h" DigitalOut led(LED1); +InterruptIn button(USER_BUTTON); +int options = 0; +bool has_changed = false; + +void toggle() { + options = options + 1 % 5; + has_changed = true; +} int main() { @@ -24,44 +32,54 @@ BSP_MAGNETO_Init(); BSP_GYRO_Init(); BSP_ACCELERO_Init(); - + + button.rise(&toggle); + while(1) { - led = 1; - - sensor_value = BSP_TSENSOR_ReadTemp(); - printf("\nTEMPERATURE = %.2f degC\n", sensor_value); - - sensor_value = BSP_HSENSOR_ReadHumidity(); - printf("HUMIDITY = %.2f %%\n", sensor_value); - - sensor_value = BSP_PSENSOR_ReadPressure(); - printf("PRESSURE is = %.2f mBar\n", sensor_value); - - led = 0; - - wait(1); - - led = 1; + led = !led; - BSP_MAGNETO_GetXYZ(pDataXYZ); - printf("\nMAGNETO_X = %d\n", pDataXYZ[0]); - printf("MAGNETO_Y = %d\n", pDataXYZ[1]); - printf("MAGNETO_Z = %d\n", pDataXYZ[2]); - - BSP_GYRO_GetXYZ(pGyroDataXYZ); - printf("\nGYRO_X = %.2f\n", pGyroDataXYZ[0]); - printf("GYRO_Y = %.2f\n", pGyroDataXYZ[1]); - printf("GYRO_Z = %.2f\n", pGyroDataXYZ[2]); - - BSP_ACCELERO_AccGetXYZ(pDataXYZ); - printf("\nACCELERO_X = %d\n", pDataXYZ[0]); - printf("ACCELERO_Y = %d\n", pDataXYZ[1]); - printf("ACCELERO_Z = %d\n", pDataXYZ[2]); - - led = 0; - - wait(1); + switch (options) + { case 0: + break; + case 1: + sensor_value = BSP_TSENSOR_ReadTemp(); + printf("\nTEMPERATURE = %.2f degC\n", sensor_value); + + sensor_value = BSP_HSENSOR_ReadHumidity(); + printf("HUMIDITY = %.2f %%\n", sensor_value); + + sensor_value = BSP_PSENSOR_ReadPressure(); + printf("PRESSURE is = %.2f mBar\n", sensor_value); + break; + + case 2: + BSP_MAGNETO_GetXYZ(pDataXYZ); + printf("\nMAGNETO_X = %d\n", pDataXYZ[0]); + printf("MAGNETO_Y = %d\n", pDataXYZ[1]); + printf("MAGNETO_Z = %d\n", pDataXYZ[2]); + break; + case 3: + BSP_GYRO_GetXYZ(pGyroDataXYZ); + printf("\nGYRO_X = %.2f\n", pGyroDataXYZ[0]); + printf("GYRO_Y = %.2f\n", pGyroDataXYZ[1]); + printf("GYRO_Z = %.2f\n", pGyroDataXYZ[2]); + break; + case 4: + BSP_ACCELERO_AccGetXYZ(pDataXYZ); + printf("\nACCELERO_X = %d\n", pDataXYZ[0]); + printf("ACCELERO_Y = %d\n", pDataXYZ[1]); + printf("ACCELERO_Z = %d\n", pDataXYZ[2]); + break; + default: + break; + } + + if(has_changed){ + wait(1); + has_changed = false; + } + led = !led; } }