Deepti AST
/
Environmental_sheild_F4
Environmental_Shield_F4_API
Fork of Environmental_sheild_F4 by
main.cpp@0:c3c9b1c8e3cb, 2014-07-08 (annotated)
- Committer:
- manoj123
- Date:
- Tue Jul 08 10:58:41 2014 +0000
- Revision:
- 0:c3c9b1c8e3cb
- Child:
- 1:745a595b1df2
Environmental_Sheild with Temperature, Humidity and Pressure Sensors
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
manoj123 | 0:c3c9b1c8e3cb | 1 | #include "mbed.h" |
manoj123 | 0:c3c9b1c8e3cb | 2 | #include "nucleo-f401re.h" |
manoj123 | 0:c3c9b1c8e3cb | 3 | #include "x_nucleo_ike01x1_pressure.h" |
manoj123 | 0:c3c9b1c8e3cb | 4 | #include "x_nucleo_ike01x1_uv.h" |
manoj123 | 0:c3c9b1c8e3cb | 5 | #include "x_nucleo_ike01x1_hum_temp.h" |
manoj123 | 0:c3c9b1c8e3cb | 6 | //------------------------------------ |
manoj123 | 0:c3c9b1c8e3cb | 7 | // Hyperterminal configuration |
manoj123 | 0:c3c9b1c8e3cb | 8 | // 9600 bauds, 8-bit data, no parity |
manoj123 | 0:c3c9b1c8e3cb | 9 | //------------------------------------ |
manoj123 | 0:c3c9b1c8e3cb | 10 | uint8_t PRESInit=0; |
manoj123 | 0:c3c9b1c8e3cb | 11 | uint8_t UVInit=0; |
manoj123 | 0:c3c9b1c8e3cb | 12 | uint8_t HumTempInit=0; |
manoj123 | 0:c3c9b1c8e3cb | 13 | /*Global variables */ |
manoj123 | 0:c3c9b1c8e3cb | 14 | uint8_t HumTempId=0; |
manoj123 | 0:c3c9b1c8e3cb | 15 | uint8_t PressID=0; |
manoj123 | 0:c3c9b1c8e3cb | 16 | int dec_precision = 2; |
manoj123 | 0:c3c9b1c8e3cb | 17 | volatile float UVI_Value; |
manoj123 | 0:c3c9b1c8e3cb | 18 | volatile float PRESSURE_Value; |
manoj123 | 0:c3c9b1c8e3cb | 19 | volatile float HUMIDITY_Value; |
manoj123 | 0:c3c9b1c8e3cb | 20 | volatile float TEMPERATURE_Value; |
manoj123 | 0:c3c9b1c8e3cb | 21 | void floatToInt(float in, int32_t *out_int, int32_t *out_dec, int32_t dec_prec); |
manoj123 | 0:c3c9b1c8e3cb | 22 | Serial pc(SERIAL_TX, SERIAL_RX); |
manoj123 | 0:c3c9b1c8e3cb | 23 | |
manoj123 | 0:c3c9b1c8e3cb | 24 | DigitalOut myled(LED1); |
manoj123 | 0:c3c9b1c8e3cb | 25 | |
manoj123 | 0:c3c9b1c8e3cb | 26 | int main() |
manoj123 | 0:c3c9b1c8e3cb | 27 | { |
manoj123 | 0:c3c9b1c8e3cb | 28 | |
manoj123 | 0:c3c9b1c8e3cb | 29 | int mul = 1; |
manoj123 | 0:c3c9b1c8e3cb | 30 | for(int i = 0; i < dec_precision; i++) |
manoj123 | 0:c3c9b1c8e3cb | 31 | mul = mul*10; |
manoj123 | 0:c3c9b1c8e3cb | 32 | |
manoj123 | 0:c3c9b1c8e3cb | 33 | if(!BSP_HUM_TEMP_isInitialized()) { |
manoj123 | 0:c3c9b1c8e3cb | 34 | BSP_HUM_TEMP_Init(); //This also Inits I2C interface from here. |
manoj123 | 0:c3c9b1c8e3cb | 35 | } |
manoj123 | 0:c3c9b1c8e3cb | 36 | HumTempId = BSP_HUM_TEMP_ReadID(); |
manoj123 | 0:c3c9b1c8e3cb | 37 | if(HumTempId==I_AM_HTS221){ |
manoj123 | 0:c3c9b1c8e3cb | 38 | HumTempInit=1; |
manoj123 | 0:c3c9b1c8e3cb | 39 | } |
manoj123 | 0:c3c9b1c8e3cb | 40 | /*End Temp Sensor Init*/ |
manoj123 | 0:c3c9b1c8e3cb | 41 | |
manoj123 | 0:c3c9b1c8e3cb | 42 | /*Initialize the pressure sensors*/ |
manoj123 | 0:c3c9b1c8e3cb | 43 | if(!BSP_PRESSURE_isInitialized()) { |
manoj123 | 0:c3c9b1c8e3cb | 44 | BSP_PRESSURE_Init(); //This also Inits I2C interface from here. |
manoj123 | 0:c3c9b1c8e3cb | 45 | PRESInit=1; |
manoj123 | 0:c3c9b1c8e3cb | 46 | } |
manoj123 | 0:c3c9b1c8e3cb | 47 | PressID = BSP_PRESSURE_ReadID(); |
manoj123 | 0:c3c9b1c8e3cb | 48 | |
manoj123 | 0:c3c9b1c8e3cb | 49 | int32_t d1, d2, d3, d4; |
manoj123 | 0:c3c9b1c8e3cb | 50 | |
manoj123 | 0:c3c9b1c8e3cb | 51 | pc.printf("Hello World !\n"); |
manoj123 | 0:c3c9b1c8e3cb | 52 | while(1) { |
manoj123 | 0:c3c9b1c8e3cb | 53 | wait(1); |
manoj123 | 0:c3c9b1c8e3cb | 54 | |
manoj123 | 0:c3c9b1c8e3cb | 55 | if(BSP_HUM_TEMP_isInitialized()) |
manoj123 | 0:c3c9b1c8e3cb | 56 | { |
manoj123 | 0:c3c9b1c8e3cb | 57 | BSP_HUM_TEMP_GetHumidity((float *)&HUMIDITY_Value); |
manoj123 | 0:c3c9b1c8e3cb | 58 | BSP_HUM_TEMP_GetTemperature((float *)&TEMPERATURE_Value); |
manoj123 | 0:c3c9b1c8e3cb | 59 | |
manoj123 | 0:c3c9b1c8e3cb | 60 | floatToInt(HUMIDITY_Value, &d1, &d2, mul); |
manoj123 | 0:c3c9b1c8e3cb | 61 | floatToInt(TEMPERATURE_Value, &d3, &d4, mul); |
manoj123 | 0:c3c9b1c8e3cb | 62 | pc.printf("H: %d.%02d T: %d.%02d", d1, d2, d3, d4); |
manoj123 | 0:c3c9b1c8e3cb | 63 | |
manoj123 | 0:c3c9b1c8e3cb | 64 | } |
manoj123 | 0:c3c9b1c8e3cb | 65 | |
manoj123 | 0:c3c9b1c8e3cb | 66 | if(BSP_PRESSURE_isInitialized()) |
manoj123 | 0:c3c9b1c8e3cb | 67 | { |
manoj123 | 0:c3c9b1c8e3cb | 68 | BSP_PRESSURE_GetPressure((float *)&PRESSURE_Value); |
manoj123 | 0:c3c9b1c8e3cb | 69 | floatToInt(PRESSURE_Value, &d1, &d2, mul); |
manoj123 | 0:c3c9b1c8e3cb | 70 | pc.printf(" P: %d.%02d\n", d1, d2); |
manoj123 | 0:c3c9b1c8e3cb | 71 | |
manoj123 | 0:c3c9b1c8e3cb | 72 | } |
manoj123 | 0:c3c9b1c8e3cb | 73 | |
manoj123 | 0:c3c9b1c8e3cb | 74 | if(BSP_UV_isInitialized()) |
manoj123 | 0:c3c9b1c8e3cb | 75 | { |
manoj123 | 0:c3c9b1c8e3cb | 76 | BSP_UV_GetIndex((float *)&UVI_Value); |
manoj123 | 0:c3c9b1c8e3cb | 77 | floatToInt(UVI_Value, &d1, &d2, mul); |
manoj123 | 0:c3c9b1c8e3cb | 78 | pc.printf("UV: %d.%02d\n", d1, d2); |
manoj123 | 0:c3c9b1c8e3cb | 79 | } |
manoj123 | 0:c3c9b1c8e3cb | 80 | |
manoj123 | 0:c3c9b1c8e3cb | 81 | |
manoj123 | 0:c3c9b1c8e3cb | 82 | myled = !myled; |
manoj123 | 0:c3c9b1c8e3cb | 83 | } |
manoj123 | 0:c3c9b1c8e3cb | 84 | } |
manoj123 | 0:c3c9b1c8e3cb | 85 | void floatToInt(float in, int32_t *out_int, int32_t *out_dec, int32_t dec_prec) |
manoj123 | 0:c3c9b1c8e3cb | 86 | { |
manoj123 | 0:c3c9b1c8e3cb | 87 | *out_int = (int32_t)in; |
manoj123 | 0:c3c9b1c8e3cb | 88 | in = in - (float)(*out_int); |
manoj123 | 0:c3c9b1c8e3cb | 89 | *out_dec = (int32_t)(in*dec_prec); |
manoj123 | 0:c3c9b1c8e3cb | 90 | } |