Changing sensor using user button

Dependencies:   BSP_B-L475E-IOT01 mbed

Committer:
iandil
Date:
Wed Nov 14 11:06:11 2018 +0000
Revision:
0:00847986b49e
Formatted printing

Who changed what in which revision?

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