DISCO-SensorsButton

Dependencies:   BSP_B-L475E-IOT01 mbed

Files at this revision

API Documentation at this revision

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; 
 
     }
 }