Modify the DISCO-Sensors example so that the press of the button changes the sensor being read

Dependencies:   BSP_B-L475E-IOT01 mbed

Revision:
1:c29615f4e926
Parent:
0:05f2173ffbfc
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Fri Nov 09 18:13:32 2018 +0000
@@ -0,0 +1,76 @@
+#include "mbed.h"
+
+// Sensors drivers present in the BSP library
+#include "stm32l475e_iot01_tsensor.h"
+#include "stm32l475e_iot01_hsensor.h"
+#include "stm32l475e_iot01_psensor.h"
+#include "stm32l475e_iot01_magneto.h"
+#include "stm32l475e_iot01_gyro.h"
+#include "stm32l475e_iot01_accelero.h"
+
+DigitalOut led(LED1);
+InterruptIn button(USER_BUTTON);
+int btn_status = 0;
+
+void toggle() {
+    btn_status = (btn_status + 1) % 6;
+}
+
+int main()
+{
+    float sensor_value = 0;
+    int16_t pDataXYZ[3] = {0};
+    float pGyroDataXYZ[3] = {0};
+    button.rise(&toggle);
+
+    BSP_TSENSOR_Init();
+    BSP_HSENSOR_Init();
+    BSP_PSENSOR_Init();
+
+    BSP_MAGNETO_Init();
+    BSP_GYRO_Init();
+    BSP_ACCELERO_Init();
+
+    while(1) {
+
+        led = 1;
+        switch(btn_status){
+            case 0:
+                sensor_value = BSP_TSENSOR_ReadTemp();
+                printf("TEMPERATURE = %.2f degC\n\n", sensor_value);
+                break;
+            case 1:
+                sensor_value = BSP_HSENSOR_ReadHumidity();
+                printf("HUMIDITY    = %.2f %%\n\n", sensor_value);
+                break;
+            case 2:
+                sensor_value = BSP_PSENSOR_ReadPressure();
+                printf("PRESSURE is = %.2f mBar\n\n", sensor_value);
+                break;
+            case 3:
+                BSP_MAGNETO_GetXYZ(pDataXYZ);
+                printf("MAGNETO_X = %d\n", pDataXYZ[0]);
+                printf("MAGNETO_Y = %d\n", pDataXYZ[1]);
+                printf("MAGNETO_Z = %d\n\n", pDataXYZ[2]);
+                break;
+            case 4:
+                BSP_GYRO_GetXYZ(pGyroDataXYZ);                     
+                printf("GYRO_X = %.2f\n", pGyroDataXYZ[0]);
+                printf("GYRO_Y = %.2f\n", pGyroDataXYZ[1]);
+                printf("GYRO_Z = %.2f\n\n", pGyroDataXYZ[2]);
+                break;
+            case 5:
+                 BSP_ACCELERO_AccGetXYZ(pDataXYZ);
+                printf("ACCELERO_X = %d\n", pDataXYZ[0]);
+                printf("ACCELERO_Y = %d\n", pDataXYZ[1]);
+                printf("ACCELERO_Z = %d\n\n", pDataXYZ[2]);
+                break;
+            default:
+                printf("\nThis shouldn't have happened!\n\n");   
+                break;
+        }
+        led = 0;
+
+        wait(1);
+    }
+}