Evironmental Shield API
Envt_Shield_F4_API.cpp
- Committer:
- Deepti
- Date:
- 2014-08-14
- Revision:
- 0:9ac219c9a7df
- Child:
- 1:d37d15b70bc5
File content as of revision 0:9ac219c9a7df:
#include "nucleo-f401re.h" #include "x_nucleo_ike01x1_pressure.h" #include "x_nucleo_ike01x1_uv.h" #include "x_nucleo_ike01x1_hum_temp.h" #include "Envt_Shield_F4_API.h" uint8_t PRESInit=0; uint8_t UVInit=0; uint8_t HumTempInit=0; /*Global variables */ uint8_t HumTempId=0; uint8_t PressID=0; int dec_precision = 2; volatile float UVI_Value; volatile float PRESSURE_Value; volatile float HUMIDITY_Value; volatile float TEMPERATURE_Value; void floatToInt(float in, int32_t *out_int, int32_t *out_dec, int32_t dec_prec); Serial pc(SERIAL_TX, SERIAL_RX); DigitalOut myled(LED1); void Envt_Shield_API:: floatToInt(float in, int32_t *out_int, int32_t *out_dec, int32_t dec_prec) { *out_int = (int32_t)in; in = in - (float)(*out_int); *out_dec = (int32_t)(in*dec_prec); } void Envt_Shield_API:: init() { int mul = 1; for(int i = 0; i < dec_precision; i++) mul = mul*10; if(!BSP_HUM_TEMP_isInitialized()) { BSP_HUM_TEMP_Init(); //This also Inits I2C interface from here. } HumTempId = BSP_HUM_TEMP_ReadID(); if(HumTempId==I_AM_HTS221){ HumTempInit=1; } /*End Temp Sensor Init*/ /*Initialize the pressure sensors*/ if(!BSP_PRESSURE_isInitialized()) { BSP_PRESSURE_Init(); //This also Inits I2C interface from here. PRESInit=1; } PressID = BSP_PRESSURE_ReadID(); int32_t d1, d2, d3, d4; pc.printf("Hello World !\n"); while(1) { wait(1); if(BSP_HUM_TEMP_isInitialized()) { BSP_HUM_TEMP_GetHumidity((float *)&HUMIDITY_Value); BSP_HUM_TEMP_GetTemperature((float *)&TEMPERATURE_Value); floatToInt(HUMIDITY_Value, &d1, &d2, mul); floatToInt(TEMPERATURE_Value, &d3, &d4, mul); pc.printf("H: %d.%02d T: %d.%02d", d1, d2, d3, d4); } if(BSP_PRESSURE_isInitialized()) { BSP_PRESSURE_GetPressure((float *)&PRESSURE_Value); floatToInt(PRESSURE_Value, &d1, &d2, mul); pc.printf(" P: %d.%02d\n", d1, d2); } if(BSP_UV_isInitialized()) { BSP_UV_GetIndex((float *)&UVI_Value); floatToInt(UVI_Value, &d1, &d2, mul); pc.printf("UV: %d.%02d\n", d1, d2); } pc.printf("Done"); myled = !myled; } }