DISCO-SensorsButton

Dependencies:   BSP_B-L475E-IOT01 mbed

Committer:
redona
Date:
Thu Nov 15 17:00:51 2018 +0000
Revision:
2:6176df9d5116
Parent:
1:dce931d77528
DISCOSensorsButton

Who changed what in which revision?

UserRevisionLine numberNew contents of line
lmottola 0:0cc3bd737dcb 1 #include "mbed.h"
lmottola 0:0cc3bd737dcb 2
lmottola 0:0cc3bd737dcb 3 // Sensors drivers present in the BSP library
lmottola 0:0cc3bd737dcb 4 #include "stm32l475e_iot01_tsensor.h"
lmottola 0:0cc3bd737dcb 5 #include "stm32l475e_iot01_hsensor.h"
lmottola 0:0cc3bd737dcb 6 #include "stm32l475e_iot01_psensor.h"
lmottola 0:0cc3bd737dcb 7 #include "stm32l475e_iot01_magneto.h"
lmottola 0:0cc3bd737dcb 8 #include "stm32l475e_iot01_gyro.h"
lmottola 0:0cc3bd737dcb 9 #include "stm32l475e_iot01_accelero.h"
lmottola 0:0cc3bd737dcb 10
lmottola 0:0cc3bd737dcb 11 DigitalOut led(LED1);
redona 2:6176df9d5116 12 InterruptIn button(USER_BUTTON);
redona 2:6176df9d5116 13 int options = 0;
redona 2:6176df9d5116 14 bool has_changed = false;
redona 2:6176df9d5116 15
redona 2:6176df9d5116 16 void toggle() {
redona 2:6176df9d5116 17 options = options + 1 % 5;
redona 2:6176df9d5116 18 has_changed = true;
redona 2:6176df9d5116 19 }
lmottola 0:0cc3bd737dcb 20
lmottola 0:0cc3bd737dcb 21 int main()
lmottola 0:0cc3bd737dcb 22 {
lmottola 0:0cc3bd737dcb 23 float sensor_value = 0;
lmottola 0:0cc3bd737dcb 24 int16_t pDataXYZ[3] = {0};
lmottola 0:0cc3bd737dcb 25 float pGyroDataXYZ[3] = {0};
lmottola 0:0cc3bd737dcb 26
lmottola 0:0cc3bd737dcb 27 BSP_TSENSOR_Init();
lmottola 0:0cc3bd737dcb 28 BSP_HSENSOR_Init();
lmottola 1:dce931d77528 29
lmottola 0:0cc3bd737dcb 30 BSP_PSENSOR_Init();
lmottola 0:0cc3bd737dcb 31
lmottola 0:0cc3bd737dcb 32 BSP_MAGNETO_Init();
lmottola 0:0cc3bd737dcb 33 BSP_GYRO_Init();
lmottola 0:0cc3bd737dcb 34 BSP_ACCELERO_Init();
redona 2:6176df9d5116 35
redona 2:6176df9d5116 36 button.rise(&toggle);
redona 2:6176df9d5116 37
lmottola 0:0cc3bd737dcb 38 while(1) {
lmottola 0:0cc3bd737dcb 39
redona 2:6176df9d5116 40 led = !led;
lmottola 0:0cc3bd737dcb 41
redona 2:6176df9d5116 42 switch (options)
redona 2:6176df9d5116 43 { case 0:
redona 2:6176df9d5116 44 break;
redona 2:6176df9d5116 45 case 1:
redona 2:6176df9d5116 46 sensor_value = BSP_TSENSOR_ReadTemp();
redona 2:6176df9d5116 47 printf("\nTEMPERATURE = %.2f degC\n", sensor_value);
redona 2:6176df9d5116 48
redona 2:6176df9d5116 49 sensor_value = BSP_HSENSOR_ReadHumidity();
redona 2:6176df9d5116 50 printf("HUMIDITY = %.2f %%\n", sensor_value);
redona 2:6176df9d5116 51
redona 2:6176df9d5116 52 sensor_value = BSP_PSENSOR_ReadPressure();
redona 2:6176df9d5116 53 printf("PRESSURE is = %.2f mBar\n", sensor_value);
redona 2:6176df9d5116 54 break;
redona 2:6176df9d5116 55
redona 2:6176df9d5116 56 case 2:
redona 2:6176df9d5116 57 BSP_MAGNETO_GetXYZ(pDataXYZ);
redona 2:6176df9d5116 58 printf("\nMAGNETO_X = %d\n", pDataXYZ[0]);
redona 2:6176df9d5116 59 printf("MAGNETO_Y = %d\n", pDataXYZ[1]);
redona 2:6176df9d5116 60 printf("MAGNETO_Z = %d\n", pDataXYZ[2]);
redona 2:6176df9d5116 61 break;
redona 2:6176df9d5116 62 case 3:
redona 2:6176df9d5116 63 BSP_GYRO_GetXYZ(pGyroDataXYZ);
redona 2:6176df9d5116 64 printf("\nGYRO_X = %.2f\n", pGyroDataXYZ[0]);
redona 2:6176df9d5116 65 printf("GYRO_Y = %.2f\n", pGyroDataXYZ[1]);
redona 2:6176df9d5116 66 printf("GYRO_Z = %.2f\n", pGyroDataXYZ[2]);
redona 2:6176df9d5116 67 break;
redona 2:6176df9d5116 68 case 4:
redona 2:6176df9d5116 69 BSP_ACCELERO_AccGetXYZ(pDataXYZ);
redona 2:6176df9d5116 70 printf("\nACCELERO_X = %d\n", pDataXYZ[0]);
redona 2:6176df9d5116 71 printf("ACCELERO_Y = %d\n", pDataXYZ[1]);
redona 2:6176df9d5116 72 printf("ACCELERO_Z = %d\n", pDataXYZ[2]);
redona 2:6176df9d5116 73 break;
redona 2:6176df9d5116 74 default:
redona 2:6176df9d5116 75 break;
redona 2:6176df9d5116 76 }
redona 2:6176df9d5116 77
redona 2:6176df9d5116 78 if(has_changed){
redona 2:6176df9d5116 79 wait(1);
redona 2:6176df9d5116 80 has_changed = false;
redona 2:6176df9d5116 81 }
redona 2:6176df9d5116 82 led = !led;
lmottola 0:0cc3bd737dcb 83
lmottola 0:0cc3bd737dcb 84 }
lmottola 0:0cc3bd737dcb 85 }