Manuel Caballero / HDC2080
Committer:
mcm
Date:
Tue Nov 19 10:35:23 2019 +0000
Revision:
1:8600f19753b8
Parent:
0:e214a18cbe6d
Child:
3:d36591d51f4d
Header file is ready to be tested.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mcm 1:8600f19753b8 1 /**
mcm 1:8600f19753b8 2 * @brief HDC2080.h
mcm 1:8600f19753b8 3 * @details Low-Power Humidity and Temperature Digital Sensor.
mcm 1:8600f19753b8 4 * Header file.
mcm 1:8600f19753b8 5 *
mcm 1:8600f19753b8 6 *
mcm 1:8600f19753b8 7 * @return N/A
mcm 1:8600f19753b8 8 *
mcm 1:8600f19753b8 9 * @author Manuel Caballero
mcm 1:8600f19753b8 10 * @date 19/November/2019
mcm 1:8600f19753b8 11 * @version 19/November/2019 The ORIGIN
mcm 1:8600f19753b8 12 * @pre N/A.
mcm 1:8600f19753b8 13 * @warning N/A
mcm 1:8600f19753b8 14 * @pre This code belongs to Nimbus Centre ( https://www.nimbus.cit.ie ).
mcm 1:8600f19753b8 15 */
mcm 1:8600f19753b8 16 #ifndef HDC2080_H
mcm 1:8600f19753b8 17 #define HDC2080_H
mcm 1:8600f19753b8 18
mcm 1:8600f19753b8 19 #include "mbed.h"
mcm 1:8600f19753b8 20
mcm 1:8600f19753b8 21
mcm 1:8600f19753b8 22 /**
mcm 1:8600f19753b8 23 Example:
mcm 1:8600f19753b8 24 @code
mcm 1:8600f19753b8 25
mcm 1:8600f19753b8 26 @endcode
mcm 1:8600f19753b8 27 */
mcm 1:8600f19753b8 28
mcm 1:8600f19753b8 29
mcm 1:8600f19753b8 30 /*!
mcm 1:8600f19753b8 31 Library for the HDC2080 Low-Power Humidity and Temperature Digital Sensor.
mcm 1:8600f19753b8 32 */
mcm 1:8600f19753b8 33 class HDC2080
mcm 1:8600f19753b8 34 {
mcm 1:8600f19753b8 35 public:
mcm 1:8600f19753b8 36 /**
mcm 1:8600f19753b8 37 * @brief DEFAULT ADDRESSES
mcm 1:8600f19753b8 38 */
mcm 1:8600f19753b8 39 typedef enum {
mcm 1:8600f19753b8 40 HDC2080_ADDRESS_GND = ( 0b1000000 << 1U ), /*!< ADDR connected to GND */
mcm 1:8600f19753b8 41 HDC2080_ADDRESS_VDD = ( 0b1000001 << 1U ) /*!< ADDR connected to VDD */
mcm 1:8600f19753b8 42 } HDC2080_addresses_t;
mcm 1:8600f19753b8 43
mcm 1:8600f19753b8 44
mcm 1:8600f19753b8 45
mcm 1:8600f19753b8 46 /**
mcm 1:8600f19753b8 47 * @brief REGISTER MAP
mcm 1:8600f19753b8 48 */
mcm 1:8600f19753b8 49 typedef enum {
mcm 1:8600f19753b8 50 HDC2080_TEMPERATURE_LOW = 0x00, /*!< Temperature [7:0] */
mcm 1:8600f19753b8 51 HDC2080_TEMPERATURE_HIGH = 0x01, /*!< Temperature [15:8] */
mcm 1:8600f19753b8 52 HDC2080_HUMIDITY_LOW = 0x02, /*!< Humidity [7:0] */
mcm 1:8600f19753b8 53 HDC2080_HUMIDITY_HIGH = 0x03, /*!< Humidity [15:8] */
mcm 1:8600f19753b8 54 HDC2080_INTERRUPT_DRDY = 0x04, /*!< DataReady and interrupt configuration */
mcm 1:8600f19753b8 55 HDC2080_TEMPERATURE_MAX = 0x05, /*!< Maximum measured temperature (Not supported in Auto Measurement Mode) */
mcm 1:8600f19753b8 56 HDC2080_HUMIDITY_MAX = 0x06, /*!< Maximum measured humidity (Not supported in Auto Measurement Mode) */
mcm 1:8600f19753b8 57 HDC2080_INTERRUPT_ENABLE = 0x07, /*!< Interrupt Enable */
mcm 1:8600f19753b8 58 HDC2080_TEMP_OFFSET_ADJUST = 0x08, /*!< Temperature offset adjustment */
mcm 1:8600f19753b8 59 HDC2080_HUM_OFFSET_ADJUST = 0x09, /*!< Humidity offset adjustment */
mcm 1:8600f19753b8 60 HDC2080_TEMP_THR_L = 0x0A, /*!< Temperature Threshold Low */
mcm 1:8600f19753b8 61 HDC2080_TEMP_THR_H = 0x0B, /*!< Temperature Threshold High */
mcm 1:8600f19753b8 62 HDC2080_RH_THR_L = 0x0C, /*!< Humidity threshold Low */
mcm 1:8600f19753b8 63 HDC2080_RH_THR_H = 0x0D, /*!< Humidity threshold High */
mcm 1:8600f19753b8 64 HDC2080_RESET_DRDY_INT_CONF = 0x0E, /*!< Soft Reset and Interrupt Configuration */
mcm 1:8600f19753b8 65 HDC2080_MEASUREMENT_CONFIGURATION = 0x0F, /*!< Measurement configuration */
mcm 1:8600f19753b8 66 HDC2080_MANUFACTURER_ID_LOW = 0xFC, /*!< Manufacturer ID Low */
mcm 1:8600f19753b8 67 HDC2080_MANUFACTURER_ID_HIGH = 0xFD, /*!< Manufacturer ID High */
mcm 1:8600f19753b8 68 HDC2080_DEVICE_ID_LOW = 0xFE, /*!< Device ID Low */
mcm 1:8600f19753b8 69 HDC2080_DEVICE_ID_HIGH = 0xFF /*!< Device ID High */
mcm 1:8600f19753b8 70 } HDC2080_register_map_t;
mcm 1:8600f19753b8 71
mcm 1:8600f19753b8 72
mcm 1:8600f19753b8 73
mcm 1:8600f19753b8 74 /**
mcm 1:8600f19753b8 75 * @brief INTERRUPT/DRDY REGISTER
mcm 1:8600f19753b8 76 */
mcm 1:8600f19753b8 77 /* DRDY_STATUS <7>
mcm 1:8600f19753b8 78 * NOTE: DataReady bit status. DRDY_STATUS is cleared to 0 when read.
mcm 1:8600f19753b8 79 */
mcm 1:8600f19753b8 80 typedef enum {
mcm 1:8600f19753b8 81 INTERRUPT_DRDY_DRDY_STATUS_MASK = ( 1U << 7U ), /*!< DRDY_STATUS mask */
mcm 1:8600f19753b8 82 INTERRUPT_DRDY_DRDY_STATUS_DATA_NOT_READY = ( 0U << 7U ), /*!< DRDY_STATUS data not ready */
mcm 1:8600f19753b8 83 INTERRUPT_DRDY_DRDY_STATUS_DATA_READY = ( 1U << 7U ) /*!< DRDY_STATUS data ready */
mcm 1:8600f19753b8 84 } HDC2080_interrupt_drdy_drdy_status_t;
mcm 1:8600f19753b8 85
mcm 1:8600f19753b8 86
mcm 1:8600f19753b8 87 /* TH_STATUS <6>
mcm 1:8600f19753b8 88 * NOTE: Temperature threshold HIGH Interrupt status. TH_STATUS is cleared to 0 when read.
mcm 1:8600f19753b8 89 */
mcm 1:8600f19753b8 90 typedef enum {
mcm 1:8600f19753b8 91 INTERRUPT_DRDY_TH_STATUS_MASK = ( 1U << 6U ), /*!< TH_STATUS mask */
mcm 1:8600f19753b8 92 INTERRUPT_DRDY_TH_STATUS_NO_INTERRUPT = ( 0U << 6U ), /*!< No interrupt */
mcm 1:8600f19753b8 93 INTERRUPT_DRDY_TH_STATUS_INTERRUPT = ( 1U << 6U ) /*!< Interrupt */
mcm 1:8600f19753b8 94 } HDC2080_interrupt_drdy_th_status_t;
mcm 1:8600f19753b8 95
mcm 1:8600f19753b8 96
mcm 1:8600f19753b8 97 /* TL_STATUS <5>
mcm 1:8600f19753b8 98 * NOTE: Temperature threshold LOW Interrupt status. TL_STATUS is cleared to 0 when read.
mcm 1:8600f19753b8 99 */
mcm 1:8600f19753b8 100 typedef enum {
mcm 1:8600f19753b8 101 INTERRUPT_DRDY_TL_STATUS_MASK = ( 1U << 5U ), /*!< TL_STATUS mask */
mcm 1:8600f19753b8 102 INTERRUPT_DRDY_TL_STATUS_NO_INTERRUPT = ( 0U << 5U ), /*!< No interrupt */
mcm 1:8600f19753b8 103 INTERRUPT_DRDY_TL_STATUS_INTERRUPT = ( 1U << 5U ) /*!< Interrupt */
mcm 1:8600f19753b8 104 } HDC2080_interrupt_drdy_tl_status_t;
mcm 1:8600f19753b8 105
mcm 1:8600f19753b8 106
mcm 1:8600f19753b8 107 /* HH_STATUS <4>
mcm 1:8600f19753b8 108 * NOTE: Humidity threshold HIGH Interrupt status. HH_STATUS is cleared to 0 when read.
mcm 1:8600f19753b8 109 */
mcm 1:8600f19753b8 110 typedef enum {
mcm 1:8600f19753b8 111 INTERRUPT_DRDY_HH_STATUS_MASK = ( 1U << 4U ), /*!< HH_STATUS mask */
mcm 1:8600f19753b8 112 INTERRUPT_DRDY_HH_STATUS_NO_INTERRUPT = ( 0U << 4U ), /*!< No interrupt */
mcm 1:8600f19753b8 113 INTERRUPT_DRDY_HH_STATUS_INTERRUPT = ( 1U << 4U ) /*!< Interrupt */
mcm 1:8600f19753b8 114 } HDC2080_interrupt_drdy_hh_status_t;
mcm 1:8600f19753b8 115
mcm 1:8600f19753b8 116
mcm 1:8600f19753b8 117 /* HL_STATUS <3>
mcm 1:8600f19753b8 118 * NOTE: Humidity threshold LOW Interrupt status. HL_STATUS is cleared to 0 when read.
mcm 1:8600f19753b8 119 */
mcm 1:8600f19753b8 120 typedef enum {
mcm 1:8600f19753b8 121 INTERRUPT_DRDY_HL_STATUS_MASK = ( 1U << 3U ), /*!< HL_STATUS mask */
mcm 1:8600f19753b8 122 INTERRUPT_DRDY_HL_STATUS_NO_INTERRUPT = ( 0U << 3U ), /*!< No interrupt */
mcm 1:8600f19753b8 123 INTERRUPT_DRDY_HL_STATUS_INTERRUPT = ( 1U << 3U ) /*!< Interrupt */
mcm 1:8600f19753b8 124 } HDC2080_interrupt_drdy_hl_status_t;
mcm 1:8600f19753b8 125
mcm 1:8600f19753b8 126
mcm 1:8600f19753b8 127
mcm 1:8600f19753b8 128 /**
mcm 1:8600f19753b8 129 * @brief INTERRUPT CONFIGURATION REGISTER
mcm 1:8600f19753b8 130 */
mcm 1:8600f19753b8 131 /* DRDY_STATUS <7>
mcm 1:8600f19753b8 132 * NOTE: DataReady interrupt enable.
mcm 1:8600f19753b8 133 */
mcm 1:8600f19753b8 134 typedef enum {
mcm 1:8600f19753b8 135 INTERRUPT_DRDY_DRDY_ENABLE_MASK = ( 1U << 7U ), /*!< DRDY_ENABLE mask */
mcm 1:8600f19753b8 136 INTERRUPT_DRDY_DRDY_ENABLE_INTERRUPT_DISABLE = ( 0U << 7U ), /*!< DRDY_ENABLE interrupt disable */
mcm 1:8600f19753b8 137 INTERRUPT_DRDY_DRDY_ENABLE_INTERRUPT_ENABLE = ( 1U << 7U ) /*!< DRDY_ENABLE interrupt enable */
mcm 1:8600f19753b8 138 } HDC2080_interrupt_enable_drdy_enable_t;
mcm 1:8600f19753b8 139
mcm 1:8600f19753b8 140
mcm 1:8600f19753b8 141 /* TH_ENABLE <6>
mcm 1:8600f19753b8 142 * NOTE: Temperature threshold HIGH Interrupt enable.
mcm 1:8600f19753b8 143 */
mcm 1:8600f19753b8 144 typedef enum {
mcm 1:8600f19753b8 145 INTERRUPT_DRDY_TH_ENABLE_MASK = ( 1U << 6U ), /*!< TH_ENABLE mask */
mcm 1:8600f19753b8 146 INTERRUPT_DRDY_TH_ENABLE_INTERRUPT_DISABLE = ( 0U << 6U ), /*!< Interrupt disable */
mcm 1:8600f19753b8 147 INTERRUPT_DRDY_TH_ENABLE_INTERRUPT_ENABLE = ( 1U << 6U ), /*!< Interrupt enable */
mcm 1:8600f19753b8 148 } HDC2080_interrupt_enable_th_enable_t;
mcm 1:8600f19753b8 149
mcm 1:8600f19753b8 150
mcm 1:8600f19753b8 151 /* TL_ENABLE <5>
mcm 1:8600f19753b8 152 * NOTE: Temperature threshold LOW Interrupt enable.
mcm 1:8600f19753b8 153 */
mcm 1:8600f19753b8 154 typedef enum {
mcm 1:8600f19753b8 155 INTERRUPT_DRDY_TL_ENABLE_MASK = ( 1U << 5U ), /*!< TL_ENABLE mask */
mcm 1:8600f19753b8 156 INTERRUPT_DRDY_TL_ENABLE_INTERRUPT_DISABLE = ( 0U << 5U ), /*!< Interrupt disable */
mcm 1:8600f19753b8 157 INTERRUPT_DRDY_TL_ENABLE_INTERRUPT_ENABLE = ( 1U << 5U ), /*!< Interrupt enable */
mcm 1:8600f19753b8 158 } HDC2080_interrupt_enable_tl_enable_t;
mcm 1:8600f19753b8 159
mcm 1:8600f19753b8 160
mcm 1:8600f19753b8 161 /* HH_ENABLE <4>
mcm 1:8600f19753b8 162 * NOTE: Humidity threshold HIGH Interrupt enable.
mcm 1:8600f19753b8 163 */
mcm 1:8600f19753b8 164 typedef enum {
mcm 1:8600f19753b8 165 INTERRUPT_DRDY_HH_ENABLE_MASK = ( 1U << 4U ), /*!< HH_ENABLE mask */
mcm 1:8600f19753b8 166 INTERRUPT_DRDY_HH_ENABLE_INTERRUPT_DISABLE = ( 0U << 4U ), /*!< Interrupt disable */
mcm 1:8600f19753b8 167 INTERRUPT_DRDY_HH_ENABLE_INTERRUPT_ENABLE = ( 1U << 4U ), /*!< Interrupt enable */
mcm 1:8600f19753b8 168 } HDC2080_interrupt_enable_hh_enable_t;
mcm 1:8600f19753b8 169
mcm 1:8600f19753b8 170
mcm 1:8600f19753b8 171 /* HL_ENABLE <3>
mcm 1:8600f19753b8 172 * NOTE: Humidity threshold LOW Interrupt enable.
mcm 1:8600f19753b8 173 */
mcm 1:8600f19753b8 174 typedef enum {
mcm 1:8600f19753b8 175 INTERRUPT_DRDY_HL_ENABLE_MASK = ( 1U << 3U ), /*!< HL_ENABLE mask */
mcm 1:8600f19753b8 176 INTERRUPT_DRDY_HL_ENABLE_INTERRUPT_DISABLE = ( 0U << 3U ), /*!< Interrupt disable */
mcm 1:8600f19753b8 177 INTERRUPT_DRDY_HL_ENABLE_INTERRUPT_ENABLE = ( 1U << 3U ), /*!< Interrupt enable */
mcm 1:8600f19753b8 178 } HDC2080_interrupt_enable_hl_enable_t;
mcm 1:8600f19753b8 179
mcm 1:8600f19753b8 180
mcm 1:8600f19753b8 181 /**
mcm 1:8600f19753b8 182 * @brief TEMP_OFFSET_ADJUST REGISTER
mcm 1:8600f19753b8 183 * NOTE: Temperature offset adjustment. Added to the converted temperature value.
mcm 1:8600f19753b8 184 */
mcm 1:8600f19753b8 185 typedef enum {
mcm 1:8600f19753b8 186 TEMP_OFFSET_ADJUST_MASK = 0xFF, /*!< TEMP_OFFSET_ADJUST mask */
mcm 1:8600f19753b8 187 TEMP_OFFSET_ADJUST_MINUS_20_62_C = ( 1U << 7U ), /*!< TEMP_OFFSET_ADJUST: –20.62°C */
mcm 1:8600f19753b8 188 TEMP_OFFSET_ADJUST_10_32_C = ( 1U << 6U ), /*!< TEMP_OFFSET_ADJUST: 10.32°C */
mcm 1:8600f19753b8 189 TEMP_OFFSET_ADJUST_5_16_C = ( 1U << 5U ), /*!< TEMP_OFFSET_ADJUST: 5.16°C */
mcm 1:8600f19753b8 190 TEMP_OFFSET_ADJUST_2_58_C = ( 1U << 4U ), /*!< TEMP_OFFSET_ADJUST: 2.58°C */
mcm 1:8600f19753b8 191 TEMP_OFFSET_ADJUST_1_28_C = ( 1U << 3U ), /*!< TEMP_OFFSET_ADJUST: 1.28°C */
mcm 1:8600f19753b8 192 TEMP_OFFSET_ADJUST_0_64_C = ( 1U << 2U ), /*!< TEMP_OFFSET_ADJUST: 0.64°C */
mcm 1:8600f19753b8 193 TEMP_OFFSET_ADJUST_0_32_C = ( 1U << 1U ), /*!< TEMP_OFFSET_ADJUST: 0.32°C */
mcm 1:8600f19753b8 194 TEMP_OFFSET_ADJUST_0_16_C = ( 1U << 0U ) /*!< TEMP_OFFSET_ADJUST: 0.16°C */
mcm 1:8600f19753b8 195 } HDC2080_temp_offset_adjust_t;
mcm 1:8600f19753b8 196
mcm 1:8600f19753b8 197
mcm 1:8600f19753b8 198 /**
mcm 1:8600f19753b8 199 * @brief HUM_OFFSET_ADJUST REGISTER
mcm 1:8600f19753b8 200 * NOTE: Humidity offset adjustment. Added to the converted Humidity value.
mcm 1:8600f19753b8 201 */
mcm 1:8600f19753b8 202 typedef enum {
mcm 1:8600f19753b8 203 HUM_OFFSET_ADJUST_MASK = 0xFF, /*!< HUM_OFFSET_ADJUST mask */
mcm 1:8600f19753b8 204 HUM_OFFSET_ADJUST_MINUS_25_RH = ( 1U << 7U ), /*!< HUM_OFFSET_ADJUST: –25 %RH */
mcm 1:8600f19753b8 205 HUM_OFFSET_ADJUST_12_5_RH = ( 1U << 6U ), /*!< HUM_OFFSET_ADJUST: 12.5 %RH */
mcm 1:8600f19753b8 206 HUM_OFFSET_ADJUST_6_3_RH = ( 1U << 5U ), /*!< HUM_OFFSET_ADJUST: 6.3 %RH */
mcm 1:8600f19753b8 207 HUM_OFFSET_ADJUST_3_1_RH = ( 1U << 4U ), /*!< HUM_OFFSET_ADJUST: 3.1 %RH */
mcm 1:8600f19753b8 208 HUM_OFFSET_ADJUST_1_6_RH = ( 1U << 3U ), /*!< HUM_OFFSET_ADJUST: 1.6 %RH */
mcm 1:8600f19753b8 209 HUM_OFFSET_ADJUST_0_8_RH = ( 1U << 2U ), /*!< HUM_OFFSET_ADJUST: 0.8 %RH */
mcm 1:8600f19753b8 210 HUM_OFFSET_ADJUST_0_4_RH = ( 1U << 1U ), /*!< HUM_OFFSET_ADJUST: 0.4 %RH */
mcm 1:8600f19753b8 211 HUM_OFFSET_ADJUST_0_2_RH = ( 1U << 0U ) /*!< HUM_OFFSET_ADJUST: 0.2 %RH */
mcm 1:8600f19753b8 212 } HDC2080_hum_offset_adjust_t;
mcm 1:8600f19753b8 213
mcm 1:8600f19753b8 214
mcm 1:8600f19753b8 215
mcm 1:8600f19753b8 216 /**
mcm 1:8600f19753b8 217 * @brief RESET_DRDY_INT_CONF REGISTER
mcm 1:8600f19753b8 218 */
mcm 1:8600f19753b8 219 /* SOFT_RES <7>
mcm 1:8600f19753b8 220 * NOTE: EEPROM value reload and registers reset.
mcm 1:8600f19753b8 221 */
mcm 1:8600f19753b8 222 typedef enum {
mcm 1:8600f19753b8 223 RESET_DRDY_INT_CONF_SOFT_RES_MASK = ( 1U << 7U ), /*!< SOFT_RES mask */
mcm 1:8600f19753b8 224 RESET_DRDY_INT_CONF_SOFT_RES_NORMAL = ( 0U << 7U ), /*!< Normal Operation mode, this bit is self-clear */
mcm 1:8600f19753b8 225 RESET_DRDY_INT_CONF_SOFT_RES_RESET = ( 1U << 7U ) /*!< Soft Reset */
mcm 1:8600f19753b8 226 } HDC2080_reset_drdy_int_conf_soft_res_t;
mcm 1:8600f19753b8 227
mcm 1:8600f19753b8 228
mcm 1:8600f19753b8 229 /* AMM <6:4>
mcm 1:8600f19753b8 230 * NOTE: EEPROM value reload and registers reset.
mcm 1:8600f19753b8 231 */
mcm 1:8600f19753b8 232 typedef enum {
mcm 1:8600f19753b8 233 RESET_DRDY_INT_CONF_AMM_MASK = ( 0b111 << 4U ), /*!< AMM mask */
mcm 1:8600f19753b8 234 RESET_DRDY_INT_CONF_AMM_DISABLED = ( 0b000 << 4U ), /*!< Disabled. Initiate measurement via I2C */
mcm 1:8600f19753b8 235 RESET_DRDY_INT_CONF_AMM_0_008_HZ = ( 0b001 << 4U ), /*!< 1/120Hz (1 samples every 2 minutes) */
mcm 1:8600f19753b8 236 RESET_DRDY_INT_CONF_AMM_0_017_HZ = ( 0b010 << 4U ), /*!< 1/60Hz (1 samples every minute) */
mcm 1:8600f19753b8 237 RESET_DRDY_INT_CONF_AMM_0_1_HZ = ( 0b011 << 4U ), /*!< 0.1Hz (1 samples every 10 seconds) */
mcm 1:8600f19753b8 238 RESET_DRDY_INT_CONF_AMM_0_2_HZ = ( 0b100 << 4U ), /*!< 0.2 Hz (1 samples every 5 second) */
mcm 1:8600f19753b8 239 RESET_DRDY_INT_CONF_AMM_1_HZ = ( 0b101 << 4U ), /*!< 1Hz (1 samples every second) */
mcm 1:8600f19753b8 240 RESET_DRDY_INT_CONF_AMM_2_HZ = ( 0b110 << 4U ), /*!< 2Hz (2 samples every second) */
mcm 1:8600f19753b8 241 RESET_DRDY_INT_CONF_AMM_5_HZ = ( 0b111 << 4U ) /*!< 5Hz (5 samples every second) */
mcm 1:8600f19753b8 242 } HDC2080_reset_drdy_int_conf_amm_t;
mcm 1:8600f19753b8 243
mcm 1:8600f19753b8 244
mcm 1:8600f19753b8 245 /* HEAT_EN <3>
mcm 1:8600f19753b8 246 * NOTE: N/A.
mcm 1:8600f19753b8 247 */
mcm 1:8600f19753b8 248 typedef enum {
mcm 1:8600f19753b8 249 RESET_DRDY_INT_CONF_HEAT_EN_MASK = ( 1U << 3U ), /*!< HEAT_EN mask */
mcm 1:8600f19753b8 250 RESET_DRDY_INT_CONF_HEAT_EN_OFF = ( 0U << 3U ), /*!< Heater off */
mcm 1:8600f19753b8 251 RESET_DRDY_INT_CONF_HEAT_EN_ON = ( 1U << 3U ) /*!< Heater on */
mcm 1:8600f19753b8 252 } HDC2080_reset_drdy_int_conf_heat_en_t;
mcm 1:8600f19753b8 253
mcm 1:8600f19753b8 254
mcm 1:8600f19753b8 255 /* DRDY/INT_EN <2>
mcm 1:8600f19753b8 256 * NOTE: DRDY/INT_EN pin configuration.
mcm 1:8600f19753b8 257 */
mcm 1:8600f19753b8 258 typedef enum {
mcm 1:8600f19753b8 259 RESET_DRDY_INT_CONF_DRDY_INT_EN_MASK = ( 1U << 2U ), /*!< DRDY/INT_EN mask */
mcm 1:8600f19753b8 260 RESET_DRDY_INT_CONF_DRDY_INT_EN_HIGH_Z = ( 0U << 2U ), /*!< High Z */
mcm 1:8600f19753b8 261 RESET_DRDY_INT_CONF_DRDY_INT_EN_ENABLED = ( 1U << 2U ) /*!< Enable */
mcm 1:8600f19753b8 262 } HDC2080_reset_drdy_int_conf_drdr_int_en_t;
mcm 1:8600f19753b8 263
mcm 1:8600f19753b8 264
mcm 1:8600f19753b8 265 /* INT_POL <1>
mcm 1:8600f19753b8 266 * NOTE: Interrupt polarity.
mcm 1:8600f19753b8 267 */
mcm 1:8600f19753b8 268 typedef enum {
mcm 1:8600f19753b8 269 RESET_DRDY_INT_CONF_INT_POL_MASK = ( 1U << 1U ), /*!< INT_POL mask */
mcm 1:8600f19753b8 270 RESET_DRDY_INT_CONF_INT_POL_ACTIVE_LOW = ( 0U << 1U ), /*!< Active Low */
mcm 1:8600f19753b8 271 RESET_DRDY_INT_CONF_INT_POL_ACTIVE_HIGH = ( 1U << 1U ) /*!< Active High */
mcm 1:8600f19753b8 272 } HDC2080_reset_drdy_int_conf_int_pol_t;
mcm 1:8600f19753b8 273
mcm 1:8600f19753b8 274
mcm 1:8600f19753b8 275 /* INT_MODE <0>
mcm 1:8600f19753b8 276 * NOTE: Interrupt mode.
mcm 1:8600f19753b8 277 */
mcm 1:8600f19753b8 278 typedef enum {
mcm 1:8600f19753b8 279 RESET_DRDY_INT_CONF_INT_MODE_MASK = ( 1U << 0U ), /*!< INT_MODE mask */
mcm 1:8600f19753b8 280 RESET_DRDY_INT_CONF_INT_MODE_LEVEL_SENSITIVE = ( 0U << 0U ), /*!< Level sensitive */
mcm 1:8600f19753b8 281 RESET_DRDY_INT_CONF_INT_MODE_COMPARATOR_MODE = ( 1U << 0U ) /*!< Comparator mode */
mcm 1:8600f19753b8 282 } HDC2080_reset_drdy_int_conf_int_mode_t;
mcm 1:8600f19753b8 283
mcm 1:8600f19753b8 284
mcm 1:8600f19753b8 285
mcm 1:8600f19753b8 286 /**
mcm 1:8600f19753b8 287 * @brief MEASUREMENT CONFIGURATION REGISTER
mcm 1:8600f19753b8 288 */
mcm 1:8600f19753b8 289 /* TRES <7:6>
mcm 1:8600f19753b8 290 * NOTE: Temperature resolution.
mcm 1:8600f19753b8 291 */
mcm 1:8600f19753b8 292 typedef enum {
mcm 1:8600f19753b8 293 MEASUREMENT_CONF_TRES_MASK = ( 0b11 << 6U ), /*!< TRES mask */
mcm 1:8600f19753b8 294 MEASUREMENT_CONF_TRES_14_BIT = ( 0b00 << 6U ), /*!< 14 bit */
mcm 1:8600f19753b8 295 MEASUREMENT_CONF_TRES_11_BIT = ( 0b01 << 6U ), /*!< 11 bit */
mcm 1:8600f19753b8 296 MEASUREMENT_CONF_TRES_9_BIT = ( 0b10 << 6U ) /*!< 9 bit */
mcm 1:8600f19753b8 297 } HDC2080_measurement_configuration_tres_t;
mcm 1:8600f19753b8 298
mcm 1:8600f19753b8 299
mcm 1:8600f19753b8 300
mcm 1:8600f19753b8 301 /* HRES <5:4>
mcm 1:8600f19753b8 302 * NOTE: Humidity resolution.
mcm 1:8600f19753b8 303 */
mcm 1:8600f19753b8 304 typedef enum {
mcm 1:8600f19753b8 305 MEASUREMENT_CONF_HRES_MASK = ( 0b11 << 4U ), /*!< HRES mask */
mcm 1:8600f19753b8 306 MEASUREMENT_CONF_HRES_14_BIT = ( 0b00 << 4U ), /*!< 14 bit */
mcm 1:8600f19753b8 307 MEASUREMENT_CONF_HRES_11_BIT = ( 0b01 << 4U ), /*!< 11 bit */
mcm 1:8600f19753b8 308 MEASUREMENT_CONF_HRES_9_BIT = ( 0b10 << 4U ) /*!< 9 bit */
mcm 1:8600f19753b8 309 } HDC2080_measurement_configuration_hres_t;
mcm 1:8600f19753b8 310
mcm 1:8600f19753b8 311
mcm 1:8600f19753b8 312
mcm 1:8600f19753b8 313 /* MEAS_CONF <2:1>
mcm 1:8600f19753b8 314 * NOTE: Measurement configuration.
mcm 1:8600f19753b8 315 */
mcm 1:8600f19753b8 316 typedef enum {
mcm 1:8600f19753b8 317 MEASUREMENT_CONF_MEAS_CONF_MASK = ( 0b11 << 1U ), /*!< MEAS_CONF mask */
mcm 1:8600f19753b8 318 MEASUREMENT_CONF_MEAS_CONF_HUMIDITY_TEMPERATURE = ( 0b00 << 1U ), /*!< Humidity + Temperature */
mcm 1:8600f19753b8 319 MEASUREMENT_CONF_MEAS_CONF_TEMPERATURE_ONLY = ( 0b01 << 1U ) /*!< Temperature only */
mcm 1:8600f19753b8 320 } HDC2080_measurement_configuration_meas_conf_t;
mcm 1:8600f19753b8 321
mcm 1:8600f19753b8 322
mcm 1:8600f19753b8 323
mcm 1:8600f19753b8 324 /* MEAS_TRIG <0>
mcm 1:8600f19753b8 325 * NOTE: Self-clearing bit when measurement completed.
mcm 1:8600f19753b8 326 */
mcm 1:8600f19753b8 327 typedef enum {
mcm 1:8600f19753b8 328 MEASUREMENT_CONF_MEAS_TRIG_MASK = ( 1U << 0U ), /*!< MEAS_TRIG mask */
mcm 1:8600f19753b8 329 MEASUREMENT_CONF_MEAS_TRIG_NO_ACTION = ( 0U << 0U ), /*!< no action */
mcm 1:8600f19753b8 330 MEASUREMENT_CONF_MEAS_TRIG_START_MEASUREMENT = ( 1U << 0U ) /*!< Start measurement */
mcm 1:8600f19753b8 331 } HDC2080_measurement_configuration_meas_trig_t;
mcm 1:8600f19753b8 332
mcm 1:8600f19753b8 333
mcm 1:8600f19753b8 334
mcm 1:8600f19753b8 335 /**
mcm 1:8600f19753b8 336 * @brief MANUFACTURER ID REGISTERS
mcm 1:8600f19753b8 337 */
mcm 1:8600f19753b8 338 typedef enum {
mcm 1:8600f19753b8 339 MANUFACTURER_ID_LOW = 0x49, /*!< MANUFACTURER ID low */
mcm 1:8600f19753b8 340 MANUFACTURER_ID_HIGH = 0x54 /*!< MANUFACTURER ID high */
mcm 1:8600f19753b8 341 } HDC2080_manufacturer_ids_t;
mcm 1:8600f19753b8 342
mcm 1:8600f19753b8 343
mcm 1:8600f19753b8 344
mcm 1:8600f19753b8 345 /**
mcm 1:8600f19753b8 346 * @brief DEVICE ID REGISTERS
mcm 1:8600f19753b8 347 */
mcm 1:8600f19753b8 348 typedef enum {
mcm 1:8600f19753b8 349 DEVICE_ID_LOW = 0xD0, /*!< DEVICE ID low */
mcm 1:8600f19753b8 350 DEVICE_ID_HIGH = 0x07 /*!< DEVICE ID high */
mcm 1:8600f19753b8 351 } HDC2080_device_ids_t;
mcm 1:8600f19753b8 352
mcm 1:8600f19753b8 353
mcm 1:8600f19753b8 354
mcm 1:8600f19753b8 355
mcm 1:8600f19753b8 356
mcm 1:8600f19753b8 357
mcm 1:8600f19753b8 358
mcm 1:8600f19753b8 359 #ifndef HDC2080_VECTOR_STRUCT_H
mcm 1:8600f19753b8 360 #define HDC2080_VECTOR_STRUCT_H
mcm 1:8600f19753b8 361 typedef struct {
mcm 1:8600f19753b8 362 /* Output registers */
mcm 1:8600f19753b8 363 uint16_t rawHumidity; /*!< Raw humidity */
mcm 1:8600f19753b8 364 uint16_t rawTemperature; /*!< Raw temperature */
mcm 1:8600f19753b8 365
mcm 1:8600f19753b8 366 float humidity; /*!< Humidity value */
mcm 1:8600f19753b8 367 float temperature; /*!< Temperature value */
mcm 1:8600f19753b8 368
mcm 1:8600f19753b8 369 uint8_t rawTemperature_max; /*!< Raw temperature max */
mcm 1:8600f19753b8 370 uint8_t rawHumidity_max; /*!< Raw humidity max */
mcm 1:8600f19753b8 371
mcm 1:8600f19753b8 372 /* Offsets */
mcm 1:8600f19753b8 373 uint8_t temp_offset_adjust; /*!< Temperature offset */
mcm 1:8600f19753b8 374 uint8_t hum_offset_adjust; /*!< Humidity offset */
mcm 1:8600f19753b8 375
mcm 1:8600f19753b8 376 /* Interrupt DRDY Field Descriptions */
mcm 1:8600f19753b8 377 uint8_t interrupt_drdy_status; /*!< Interrupt DRDY status */
mcm 1:8600f19753b8 378
mcm 1:8600f19753b8 379 /* Interrupt Configuration Field Descriptions */
mcm 1:8600f19753b8 380 HDC2080_interrupt_enable_drdy_enable_t drdy_enable; /*!< DataReady Interrupt enable */
mcm 1:8600f19753b8 381 HDC2080_interrupt_enable_th_enable_t th_enable; /*!< Temperature threshold HIGH Interrupt enable */
mcm 1:8600f19753b8 382 HDC2080_interrupt_enable_tl_enable_t tl_enable; /*!< Temperature threshold LOW Interrupt enable */
mcm 1:8600f19753b8 383 HDC2080_interrupt_enable_hh_enable_t hh_enable; /*!< Humidity threshold HIGH Interrupt enable */
mcm 1:8600f19753b8 384 HDC2080_interrupt_enable_hl_enable_t hl_enable; /*!< Humidity threshold LOW Interrupt enable */
mcm 1:8600f19753b8 385
mcm 1:8600f19753b8 386 /* Thresholds */
mcm 1:8600f19753b8 387 uint8_t temp_thres_low; /*!< Temperature threshold low */
mcm 1:8600f19753b8 388 uint8_t temp_thres_high; /*!< Temperature threshold low */
mcm 1:8600f19753b8 389 uint8_t hum_thres_low; /*!< Humidity threshold low */
mcm 1:8600f19753b8 390 uint8_t hum_thres_high; /*!< Humidity threshold low */
mcm 1:8600f19753b8 391
mcm 1:8600f19753b8 392 /* Configuration Field Descriptions */
mcm 1:8600f19753b8 393 HDC2080_reset_drdy_int_conf_soft_res_t soft_res; /*!< Soft reset flag */
mcm 1:8600f19753b8 394 HDC2080_reset_drdy_int_conf_amm_t amm; /*!< Auto Measurement Mode */
mcm 1:8600f19753b8 395 HDC2080_reset_drdy_int_conf_heat_en_t heater_en; /*!< Heater Mode */
mcm 1:8600f19753b8 396 HDC2080_reset_drdy_int_conf_drdr_int_en_t drdy_intEn; /*!< DRDY/INT_EN pin configuration */
mcm 1:8600f19753b8 397 HDC2080_reset_drdy_int_conf_int_pol_t int_pol; /*!< Interrupt polarity */
mcm 1:8600f19753b8 398 HDC2080_reset_drdy_int_conf_int_mode_t int_mode; /*!< Interrupt mode */
mcm 1:8600f19753b8 399
mcm 1:8600f19753b8 400 /* Measurement Configuration Field Descriptions */
mcm 1:8600f19753b8 401 HDC2080_measurement_configuration_tres_t tres; /*!< Temperature resolution */
mcm 1:8600f19753b8 402 HDC2080_measurement_configuration_hres_t hres; /*!< Humidity resolution */
mcm 1:8600f19753b8 403 HDC2080_measurement_configuration_meas_conf_t meas_conf; /*!< Measurement configuration */
mcm 1:8600f19753b8 404 HDC2080_measurement_configuration_meas_trig_t meas_trig; /*!< Measurement trigger */
mcm 1:8600f19753b8 405
mcm 1:8600f19753b8 406 /* Device identifications */
mcm 1:8600f19753b8 407 uint16_t manufacturer_id; /*!< Manufacturer ID */
mcm 1:8600f19753b8 408 uint16_t device_id; /*!< Device ID */
mcm 1:8600f19753b8 409 } HDC2080_data_t;
mcm 1:8600f19753b8 410 #endif
mcm 1:8600f19753b8 411
mcm 1:8600f19753b8 412
mcm 1:8600f19753b8 413 /**
mcm 1:8600f19753b8 414 * @brief INTERNAL CONSTANTS
mcm 1:8600f19753b8 415 */
mcm 1:8600f19753b8 416 typedef enum {
mcm 1:8600f19753b8 417 HDC2080_SUCCESS = 0U, /*!< I2C communication success */
mcm 1:8600f19753b8 418 HDC2080_FAILURE = 1U, /*!< I2C communication failure */
mcm 1:8600f19753b8 419 I2C_SUCCESS = 0U /*!< I2C communication was fine */
mcm 1:8600f19753b8 420 } HDC2080_status_t;
mcm 1:8600f19753b8 421
mcm 1:8600f19753b8 422
mcm 1:8600f19753b8 423
mcm 1:8600f19753b8 424
mcm 1:8600f19753b8 425 /** Create an HDC2080 object connected to the specified I2C pins.
mcm 1:8600f19753b8 426 *
mcm 1:8600f19753b8 427 * @param sda I2C data pin
mcm 1:8600f19753b8 428 * @param scl I2C clock pin
mcm 1:8600f19753b8 429 * @param addr I2C slave address
mcm 1:8600f19753b8 430 * @param freq I2C frequency
mcm 1:8600f19753b8 431 */
mcm 1:8600f19753b8 432 HDC2080 ( PinName sda, PinName scl, uint32_t addr, uint32_t freq );
mcm 1:8600f19753b8 433
mcm 1:8600f19753b8 434 /** Delete HDC2080 object.
mcm 1:8600f19753b8 435 */
mcm 1:8600f19753b8 436 ~HDC2080();
mcm 1:8600f19753b8 437
mcm 1:8600f19753b8 438 /** It gets the raw temperature.
mcm 1:8600f19753b8 439 */
mcm 1:8600f19753b8 440 HDC2080_status_t HDC2080_GetRawTemperature ( HDC2080_data_t* myRawTemperature );
mcm 1:8600f19753b8 441
mcm 1:8600f19753b8 442 /** It gets the current temperature.
mcm 1:8600f19753b8 443 */
mcm 1:8600f19753b8 444 HDC2080_status_t HDC2080_GetTemperature ( HDC2080_data_t* myTemperature );
mcm 1:8600f19753b8 445
mcm 1:8600f19753b8 446 /** It gets the raw humidity.
mcm 1:8600f19753b8 447 */
mcm 1:8600f19753b8 448 HDC2080_status_t HDC2080_GetRawHumidity ( HDC2080_data_t* myRawHumidity );
mcm 1:8600f19753b8 449
mcm 1:8600f19753b8 450 /** It gets the current humidity.
mcm 1:8600f19753b8 451 */
mcm 1:8600f19753b8 452 HDC2080_status_t HDC2080_GetHumidity ( HDC2080_data_t* myHumidity );
mcm 1:8600f19753b8 453
mcm 1:8600f19753b8 454 /** It gets the interrupt DRDY status.
mcm 1:8600f19753b8 455 */
mcm 1:8600f19753b8 456 HDC2080_status_t HDC2080_GetInterrupt_DRDY_Status ( HDC2080_data_t* myStatus );
mcm 1:8600f19753b8 457
mcm 1:8600f19753b8 458 /** It writes the temperature max register ( raw value ).
mcm 1:8600f19753b8 459 */
mcm 1:8600f19753b8 460 HDC2080_status_t HDC2080_ConfTemperatureMax ( HDC2080_data_t myTemperatureMax );
mcm 1:8600f19753b8 461
mcm 1:8600f19753b8 462 /** It writes the humidity max register ( raw value ).
mcm 1:8600f19753b8 463 */
mcm 1:8600f19753b8 464 HDC2080_status_t HDC2080_ConfHumidityMax ( HDC2080_data_t myHumidityMax );
mcm 1:8600f19753b8 465
mcm 1:8600f19753b8 466 /** It sets the interrupt configuration.
mcm 1:8600f19753b8 467 */
mcm 1:8600f19753b8 468 HDC2080_status_t HDC2080_SetInterruptConfiguration ( HDC2080_data_t myIntConfiguration );
mcm 1:8600f19753b8 469
mcm 1:8600f19753b8 470 /** It gets the interrupt configuration.
mcm 1:8600f19753b8 471 */
mcm 1:8600f19753b8 472 HDC2080_status_t HDC2080_GetInterruptConfiguration ( HDC2080_data_t* myIntConfiguration );
mcm 1:8600f19753b8 473
mcm 1:8600f19753b8 474 /** It sets the temperature offset.
mcm 1:8600f19753b8 475 */
mcm 1:8600f19753b8 476 HDC2080_status_t HDC2080_SetTemperatureOffset ( HDC2080_data_t myTemperatureOffset );
mcm 1:8600f19753b8 477
mcm 1:8600f19753b8 478 /** It gets the temperature offset ( raw value ).
mcm 1:8600f19753b8 479 */
mcm 1:8600f19753b8 480 HDC2080_status_t HDC2080_GetTemperatureOffset ( HDC2080_data_t* myTemperatureOffset );
mcm 1:8600f19753b8 481
mcm 1:8600f19753b8 482 /** It sets the humidity offset.
mcm 1:8600f19753b8 483 */
mcm 1:8600f19753b8 484 HDC2080_status_t HDC2080_SetHumidityOffset ( HDC2080_data_t myHumidityOffset );
mcm 1:8600f19753b8 485
mcm 1:8600f19753b8 486 /** It gets the humidity offset ( raw value ).
mcm 1:8600f19753b8 487 */
mcm 1:8600f19753b8 488 HDC2080_status_t HDC2080_GetHumidityOffset ( HDC2080_data_t* myHumidityOffset );
mcm 1:8600f19753b8 489
mcm 1:8600f19753b8 490 /** It sets the temperature threshold low value ( raw value ).
mcm 1:8600f19753b8 491 */
mcm 1:8600f19753b8 492 HDC2080_status_t HDC2080_SetTemperatureThresLow ( HDC2080_data_t myTempThresLow );
mcm 1:8600f19753b8 493
mcm 1:8600f19753b8 494 /** It gets the temperature threshold low value ( raw value ).
mcm 1:8600f19753b8 495 */
mcm 1:8600f19753b8 496 HDC2080_status_t HDC2080_GetTemperatureThresLow ( HDC2080_data_t* myTempThresLow );
mcm 1:8600f19753b8 497
mcm 1:8600f19753b8 498 /** It sets the temperature threshold high value ( raw value ).
mcm 1:8600f19753b8 499 */
mcm 1:8600f19753b8 500 HDC2080_status_t HDC2080_SetTemperatureThresHigh ( HDC2080_data_t myTempThresLow );
mcm 1:8600f19753b8 501
mcm 1:8600f19753b8 502 /** It gets the temperature threshold high value ( raw value ).
mcm 1:8600f19753b8 503 */
mcm 1:8600f19753b8 504 HDC2080_status_t HDC2080_GetTemperatureThresHigh ( HDC2080_data_t* myTempThresHigh );
mcm 1:8600f19753b8 505
mcm 1:8600f19753b8 506 /** It sets the humidity threshold low value ( raw value ).
mcm 1:8600f19753b8 507 */
mcm 1:8600f19753b8 508 HDC2080_status_t HDC2080_SetHumidityThresLow ( HDC2080_data_t myHumThresLow );
mcm 1:8600f19753b8 509
mcm 1:8600f19753b8 510 /** It gets the humidity threshold low value ( raw value ).
mcm 1:8600f19753b8 511 */
mcm 1:8600f19753b8 512 HDC2080_status_t HDC2080_GetHumidityThresLow ( HDC2080_data_t* myHumThresLow );
mcm 1:8600f19753b8 513
mcm 1:8600f19753b8 514 /** It sets the humidity threshold high value ( raw value ).
mcm 1:8600f19753b8 515 */
mcm 1:8600f19753b8 516 HDC2080_status_t HDC2080_SetHumidityThresHigh ( HDC2080_data_t myHumThresLow );
mcm 1:8600f19753b8 517
mcm 1:8600f19753b8 518 /** It gets the humidity threshold high value ( raw value ).
mcm 1:8600f19753b8 519 */
mcm 1:8600f19753b8 520 HDC2080_status_t HDC2080_GetHumidityThresHigh ( HDC2080_data_t* myHumThresLow );
mcm 1:8600f19753b8 521
mcm 1:8600f19753b8 522 /** It makes a soft reset.
mcm 1:8600f19753b8 523 */
mcm 1:8600f19753b8 524 HDC2080_status_t HDC2080_SetSoftReset ( void );
mcm 1:8600f19753b8 525
mcm 1:8600f19753b8 526 /** It checks the soft reset flag.
mcm 1:8600f19753b8 527 */
mcm 1:8600f19753b8 528 HDC2080_status_t HDC2080_GetSoftReset ( HDC2080_data_t* mySoftResetFlag );
mcm 1:8600f19753b8 529
mcm 1:8600f19753b8 530 /** It sets auto measurement mode ( AMM ).
mcm 1:8600f19753b8 531 */
mcm 1:8600f19753b8 532 HDC2080_status_t HDC2080_SetAutoMeasurementMode ( HDC2080_data_t myAMM );
mcm 1:8600f19753b8 533
mcm 1:8600f19753b8 534 /** It gets auto measurement mode ( AMM ).
mcm 1:8600f19753b8 535 */
mcm 1:8600f19753b8 536 HDC2080_status_t HDC2080_GetAutoMeasurementMode ( HDC2080_data_t* myAMM );
mcm 1:8600f19753b8 537
mcm 1:8600f19753b8 538 /** It sets the heater.
mcm 1:8600f19753b8 539 */
mcm 1:8600f19753b8 540 HDC2080_status_t HDC2080_SetHeaterMode ( HDC2080_data_t myHeatEn );
mcm 1:8600f19753b8 541
mcm 1:8600f19753b8 542 /** It gets the heater status.
mcm 1:8600f19753b8 543 */
mcm 1:8600f19753b8 544 HDC2080_status_t HDC2080_GetHeaterMode ( HDC2080_data_t* myHeatEn );
mcm 1:8600f19753b8 545
mcm 1:8600f19753b8 546 /** It sets the DRDY/INT_EN pin configuration.
mcm 1:8600f19753b8 547 */
mcm 1:8600f19753b8 548 HDC2080_status_t HDC2080_SetPinConfifuration ( HDC2080_data_t myPinConfiguration );
mcm 1:8600f19753b8 549
mcm 1:8600f19753b8 550 /** It gets the DRDY/INT_EN pin configuration.
mcm 1:8600f19753b8 551 */
mcm 1:8600f19753b8 552 HDC2080_status_t HDC2080_GetPinConfiguration ( HDC2080_data_t* myPinConfiguration );
mcm 1:8600f19753b8 553
mcm 1:8600f19753b8 554 /** It sets the interrupt polarity.
mcm 1:8600f19753b8 555 */
mcm 1:8600f19753b8 556 HDC2080_status_t HDC2080_SetInterruptPolarity ( HDC2080_data_t myIntPol );
mcm 1:8600f19753b8 557
mcm 1:8600f19753b8 558 /** It gets the interrupt polarity.
mcm 1:8600f19753b8 559 */
mcm 1:8600f19753b8 560 HDC2080_status_t HDC2080_GetInterruptPolarity ( HDC2080_data_t* myIntPol );
mcm 1:8600f19753b8 561
mcm 1:8600f19753b8 562 /** It sets the interrupt mode.
mcm 1:8600f19753b8 563 */
mcm 1:8600f19753b8 564 HDC2080_status_t HDC2080_SetInterruptMode ( HDC2080_data_t myIntMode );
mcm 1:8600f19753b8 565
mcm 1:8600f19753b8 566 /** It gets the interrupt mode.
mcm 1:8600f19753b8 567 */
mcm 1:8600f19753b8 568 HDC2080_status_t HDC2080_GetInterruptMode ( HDC2080_data_t* myIntMode );
mcm 1:8600f19753b8 569
mcm 1:8600f19753b8 570 /** It sets the measurement configuration.
mcm 1:8600f19753b8 571 */
mcm 1:8600f19753b8 572 HDC2080_status_t HDC2080_SetMeasurementConf ( HDC2080_data_t myMeasConf );
mcm 1:8600f19753b8 573
mcm 1:8600f19753b8 574 /** It gets the measurement configuration.
mcm 1:8600f19753b8 575 */
mcm 1:8600f19753b8 576 HDC2080_status_t HDC2080_GetMeasurementConf ( HDC2080_data_t* myMeasConf );
mcm 1:8600f19753b8 577
mcm 1:8600f19753b8 578 /** It triggers a new measurement.
mcm 1:8600f19753b8 579 */
mcm 1:8600f19753b8 580 HDC2080_status_t HDC2080_StartMeasurementTrigger ( void );
mcm 1:8600f19753b8 581
mcm 1:8600f19753b8 582 /** It gets the measurement trigger flag.
mcm 1:8600f19753b8 583 */
mcm 1:8600f19753b8 584 HDC2080_status_t HDC2080_GetMeasurementTrigger ( HDC2080_data_t* myMeasTrig );
mcm 1:8600f19753b8 585
mcm 1:8600f19753b8 586 /** It gets the manufacturer ID.
mcm 1:8600f19753b8 587 */
mcm 1:8600f19753b8 588 HDC2080_status_t HDC2080_GetManufacturerID ( HDC2080_data_t* myManufacturerID );
mcm 1:8600f19753b8 589
mcm 1:8600f19753b8 590 /** It gets the device ID.
mcm 1:8600f19753b8 591 */
mcm 1:8600f19753b8 592 HDC2080_status_t HDC2080_GetDeviceID ( HDC2080_data_t* myDeviceID );
mcm 1:8600f19753b8 593
mcm 1:8600f19753b8 594
mcm 1:8600f19753b8 595 private:
mcm 1:8600f19753b8 596 I2C _i2c;
mcm 1:8600f19753b8 597 uint32_t _HDC2080_Addr;
mcm 1:8600f19753b8 598 };
mcm 1:8600f19753b8 599
mcm 1:8600f19753b8 600 #endif