Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
HDC2080.cpp@2:d6cde3037eac, 2019-11-19 (annotated)
- Committer:
- mcm
- Date:
- Tue Nov 19 10:55:47 2019 +0000
- Revision:
- 2:d6cde3037eac
- Parent:
- 0:e214a18cbe6d
- Child:
- 3:d36591d51f4d
The functions file is ready to be tested.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mcm | 2:d6cde3037eac | 1 | /** |
mcm | 2:d6cde3037eac | 2 | * @brief HDC2080.cpp |
mcm | 2:d6cde3037eac | 3 | * @details Low-Power Humidity and Temperature Digital Sensor. |
mcm | 2:d6cde3037eac | 4 | * Functions file. |
mcm | 2:d6cde3037eac | 5 | * |
mcm | 2:d6cde3037eac | 6 | * |
mcm | 2:d6cde3037eac | 7 | * @return N/A |
mcm | 2:d6cde3037eac | 8 | * |
mcm | 2:d6cde3037eac | 9 | * @author Manuel Caballero |
mcm | 2:d6cde3037eac | 10 | * @date 19/November/2019 |
mcm | 2:d6cde3037eac | 11 | * @version 19/November/2019 The ORIGIN |
mcm | 2:d6cde3037eac | 12 | * @pre N/A. |
mcm | 2:d6cde3037eac | 13 | * @warning N/A |
mcm | 2:d6cde3037eac | 14 | * @pre This code belongs to Nimbus Centre ( https://www.nimbus.cit.ie ). |
mcm | 2:d6cde3037eac | 15 | */ |
mcm | 2:d6cde3037eac | 16 | |
mcm | 2:d6cde3037eac | 17 | #include "HDC2080.h" |
mcm | 2:d6cde3037eac | 18 | |
mcm | 2:d6cde3037eac | 19 | |
mcm | 2:d6cde3037eac | 20 | HDC2080::HDC2080 ( PinName sda, PinName scl, uint32_t addr, uint32_t freq ) |
mcm | 2:d6cde3037eac | 21 | : _i2c ( sda, scl ) |
mcm | 2:d6cde3037eac | 22 | , _HDC2080_Addr ( addr ) |
mcm | 2:d6cde3037eac | 23 | { |
mcm | 2:d6cde3037eac | 24 | _i2c.frequency( freq ); |
mcm | 2:d6cde3037eac | 25 | } |
mcm | 2:d6cde3037eac | 26 | |
mcm | 2:d6cde3037eac | 27 | |
mcm | 2:d6cde3037eac | 28 | HDC2080::~HDC2080() |
mcm | 2:d6cde3037eac | 29 | { |
mcm | 2:d6cde3037eac | 30 | } |
mcm | 2:d6cde3037eac | 31 | |
mcm | 2:d6cde3037eac | 32 | |
mcm | 2:d6cde3037eac | 33 | /** |
mcm | 2:d6cde3037eac | 34 | * @brief HDC2080_GetRawTemperature ( HDC2080_data_t* ) |
mcm | 2:d6cde3037eac | 35 | * |
mcm | 2:d6cde3037eac | 36 | * @details It gets the raw temperature. |
mcm | 2:d6cde3037eac | 37 | * |
mcm | 2:d6cde3037eac | 38 | * @param[in] N/A. |
mcm | 2:d6cde3037eac | 39 | * |
mcm | 2:d6cde3037eac | 40 | * @param[out] myRawTemperature: Raw temperature. |
mcm | 2:d6cde3037eac | 41 | * |
mcm | 2:d6cde3037eac | 42 | * |
mcm | 2:d6cde3037eac | 43 | * @return Status of HDC2080_GetRawTemperature. |
mcm | 2:d6cde3037eac | 44 | * |
mcm | 2:d6cde3037eac | 45 | * |
mcm | 2:d6cde3037eac | 46 | * @author Manuel Caballero |
mcm | 2:d6cde3037eac | 47 | * @date 19/November/2019 |
mcm | 2:d6cde3037eac | 48 | * @version 19/November/2019 The ORIGIN |
mcm | 2:d6cde3037eac | 49 | * @pre N/A |
mcm | 2:d6cde3037eac | 50 | * @warning N/A. |
mcm | 2:d6cde3037eac | 51 | */ |
mcm | 2:d6cde3037eac | 52 | HDC2080::HDC2080_status_t HDC2080::HDC2080_GetRawTemperature ( HDC2080_data_t* myRawTemperature ) |
mcm | 2:d6cde3037eac | 53 | { |
mcm | 2:d6cde3037eac | 54 | char cmd[2] = { 0 }; |
mcm | 2:d6cde3037eac | 55 | uint32_t aux; |
mcm | 2:d6cde3037eac | 56 | |
mcm | 2:d6cde3037eac | 57 | /* Read the register */ |
mcm | 2:d6cde3037eac | 58 | cmd[0] = HDC2080_TEMPERATURE_LOW; |
mcm | 2:d6cde3037eac | 59 | aux = _i2c.write ( _HDC2080_Addr, &cmd[0], 1U, true ); |
mcm | 2:d6cde3037eac | 60 | aux = _i2c.read ( _HDC2080_Addr, &cmd[0], sizeof( cmd )/sizeof( cmd[0] ) ); |
mcm | 2:d6cde3037eac | 61 | |
mcm | 2:d6cde3037eac | 62 | |
mcm | 2:d6cde3037eac | 63 | /* Parse data */ |
mcm | 2:d6cde3037eac | 64 | myRawTemperature->rawTemperature = cmd[1]; |
mcm | 2:d6cde3037eac | 65 | myRawTemperature->rawTemperature <<= 8U; |
mcm | 2:d6cde3037eac | 66 | myRawTemperature->rawTemperature |= cmd[0]; |
mcm | 2:d6cde3037eac | 67 | |
mcm | 2:d6cde3037eac | 68 | |
mcm | 2:d6cde3037eac | 69 | |
mcm | 2:d6cde3037eac | 70 | if ( aux == I2C_SUCCESS ) { |
mcm | 2:d6cde3037eac | 71 | return HDC2080_SUCCESS; |
mcm | 2:d6cde3037eac | 72 | } else { |
mcm | 2:d6cde3037eac | 73 | return HDC2080_FAILURE; |
mcm | 2:d6cde3037eac | 74 | } |
mcm | 2:d6cde3037eac | 75 | } |
mcm | 2:d6cde3037eac | 76 | |
mcm | 2:d6cde3037eac | 77 | |
mcm | 2:d6cde3037eac | 78 | |
mcm | 2:d6cde3037eac | 79 | /** |
mcm | 2:d6cde3037eac | 80 | * @brief HDC2080_GetTemperature ( HDC2080_data_t* ) |
mcm | 2:d6cde3037eac | 81 | * |
mcm | 2:d6cde3037eac | 82 | * @details It gets the current temperature. |
mcm | 2:d6cde3037eac | 83 | * |
mcm | 2:d6cde3037eac | 84 | * @param[in] N/A. |
mcm | 2:d6cde3037eac | 85 | * |
mcm | 2:d6cde3037eac | 86 | * @param[out] myTemperature: Current temperature. |
mcm | 2:d6cde3037eac | 87 | * |
mcm | 2:d6cde3037eac | 88 | * |
mcm | 2:d6cde3037eac | 89 | * @return Status of HDC2080_GetTemperature. |
mcm | 2:d6cde3037eac | 90 | * |
mcm | 2:d6cde3037eac | 91 | * |
mcm | 2:d6cde3037eac | 92 | * @author Manuel Caballero |
mcm | 2:d6cde3037eac | 93 | * @date 19/November/2019 |
mcm | 2:d6cde3037eac | 94 | * @version 19/November/2019 The ORIGIN |
mcm | 2:d6cde3037eac | 95 | * @pre N/A |
mcm | 2:d6cde3037eac | 96 | * @warning N/A. |
mcm | 2:d6cde3037eac | 97 | */ |
mcm | 2:d6cde3037eac | 98 | HDC2080::HDC2080_status_t HDC2080::HDC2080_GetTemperature ( HDC2080_data_t* myTemperature ) |
mcm | 2:d6cde3037eac | 99 | { |
mcm | 2:d6cde3037eac | 100 | HDC2080_status_t aux; |
mcm | 2:d6cde3037eac | 101 | |
mcm | 2:d6cde3037eac | 102 | /* Read the register */ |
mcm | 2:d6cde3037eac | 103 | aux = HDC2080_GetRawTemperature ( &(*myTemperature) ); |
mcm | 2:d6cde3037eac | 104 | |
mcm | 2:d6cde3037eac | 105 | /* Parse data */ |
mcm | 2:d6cde3037eac | 106 | myTemperature->temperature = ( (double)( myTemperature->rawTemperature ) / 65536.0 ) * 165.0 - 40.0; |
mcm | 2:d6cde3037eac | 107 | |
mcm | 2:d6cde3037eac | 108 | |
mcm | 2:d6cde3037eac | 109 | return aux; |
mcm | 2:d6cde3037eac | 110 | } |
mcm | 2:d6cde3037eac | 111 | |
mcm | 2:d6cde3037eac | 112 | |
mcm | 2:d6cde3037eac | 113 | |
mcm | 2:d6cde3037eac | 114 | /** |
mcm | 2:d6cde3037eac | 115 | * @brief HDC2080_GetRawHumidity ( HDC2080_data_t* ) |
mcm | 2:d6cde3037eac | 116 | * |
mcm | 2:d6cde3037eac | 117 | * @details It gets the raw humidity. |
mcm | 2:d6cde3037eac | 118 | * |
mcm | 2:d6cde3037eac | 119 | * @param[in] N/A. |
mcm | 2:d6cde3037eac | 120 | * |
mcm | 2:d6cde3037eac | 121 | * @param[out] myRawTemperature: Raw humidity. |
mcm | 2:d6cde3037eac | 122 | * |
mcm | 2:d6cde3037eac | 123 | * |
mcm | 2:d6cde3037eac | 124 | * @return Status of HDC2080_GetRawHumidity. |
mcm | 2:d6cde3037eac | 125 | * |
mcm | 2:d6cde3037eac | 126 | * |
mcm | 2:d6cde3037eac | 127 | * @author Manuel Caballero |
mcm | 2:d6cde3037eac | 128 | * @date 19/November/2019 |
mcm | 2:d6cde3037eac | 129 | * @version 19/November/2019 The ORIGIN |
mcm | 2:d6cde3037eac | 130 | * @pre N/A |
mcm | 2:d6cde3037eac | 131 | * @warning N/A. |
mcm | 2:d6cde3037eac | 132 | */ |
mcm | 2:d6cde3037eac | 133 | HDC2080::HDC2080_status_t HDC2080::HDC2080_GetRawHumidity ( HDC2080_data_t* myRawHumidity ) |
mcm | 2:d6cde3037eac | 134 | { |
mcm | 2:d6cde3037eac | 135 | char cmd[2] = { 0 }; |
mcm | 2:d6cde3037eac | 136 | uint32_t aux; |
mcm | 2:d6cde3037eac | 137 | |
mcm | 2:d6cde3037eac | 138 | /* Read the register */ |
mcm | 2:d6cde3037eac | 139 | cmd[0] = HDC2080_HUMIDITY_LOW; |
mcm | 2:d6cde3037eac | 140 | aux = _i2c.write ( _HDC2080_Addr, &cmd[0], 1U, true ); |
mcm | 2:d6cde3037eac | 141 | aux = _i2c.read ( _HDC2080_Addr, &cmd[0], sizeof( cmd )/sizeof( cmd[0] ) ); |
mcm | 2:d6cde3037eac | 142 | |
mcm | 2:d6cde3037eac | 143 | |
mcm | 2:d6cde3037eac | 144 | /* Parse data */ |
mcm | 2:d6cde3037eac | 145 | myRawHumidity->rawHumidity = cmd[1]; |
mcm | 2:d6cde3037eac | 146 | myRawHumidity->rawHumidity <<= 8U; |
mcm | 2:d6cde3037eac | 147 | myRawHumidity->rawHumidity |= cmd[0]; |
mcm | 2:d6cde3037eac | 148 | |
mcm | 2:d6cde3037eac | 149 | |
mcm | 2:d6cde3037eac | 150 | |
mcm | 2:d6cde3037eac | 151 | if ( aux == I2C_SUCCESS ) { |
mcm | 2:d6cde3037eac | 152 | return HDC2080_SUCCESS; |
mcm | 2:d6cde3037eac | 153 | } else { |
mcm | 2:d6cde3037eac | 154 | return HDC2080_FAILURE; |
mcm | 2:d6cde3037eac | 155 | } |
mcm | 2:d6cde3037eac | 156 | } |
mcm | 2:d6cde3037eac | 157 | |
mcm | 2:d6cde3037eac | 158 | |
mcm | 2:d6cde3037eac | 159 | |
mcm | 2:d6cde3037eac | 160 | /** |
mcm | 2:d6cde3037eac | 161 | * @brief HDC2080_GetHumidity ( HDC2080_data_t* ) |
mcm | 2:d6cde3037eac | 162 | * |
mcm | 2:d6cde3037eac | 163 | * @details It gets the current humidity. |
mcm | 2:d6cde3037eac | 164 | * |
mcm | 2:d6cde3037eac | 165 | * @param[in] N/A. |
mcm | 2:d6cde3037eac | 166 | * |
mcm | 2:d6cde3037eac | 167 | * @param[out] myTemperature: Current humidity. |
mcm | 2:d6cde3037eac | 168 | * |
mcm | 2:d6cde3037eac | 169 | * |
mcm | 2:d6cde3037eac | 170 | * @return Status of HDC2080_GetTemperature. |
mcm | 2:d6cde3037eac | 171 | * |
mcm | 2:d6cde3037eac | 172 | * |
mcm | 2:d6cde3037eac | 173 | * @author Manuel Caballero |
mcm | 2:d6cde3037eac | 174 | * @date 19/November/2019 |
mcm | 2:d6cde3037eac | 175 | * @version 19/November/2019 The ORIGIN |
mcm | 2:d6cde3037eac | 176 | * @pre N/A |
mcm | 2:d6cde3037eac | 177 | * @warning N/A. |
mcm | 2:d6cde3037eac | 178 | */ |
mcm | 2:d6cde3037eac | 179 | HDC2080::HDC2080_status_t HDC2080::HDC2080_GetHumidity ( HDC2080_data_t* myHumidity ) |
mcm | 2:d6cde3037eac | 180 | { |
mcm | 2:d6cde3037eac | 181 | HDC2080_status_t aux; |
mcm | 2:d6cde3037eac | 182 | |
mcm | 2:d6cde3037eac | 183 | /* Read the register */ |
mcm | 2:d6cde3037eac | 184 | aux = HDC2080_GetRawHumidity ( &(*myHumidity) ); |
mcm | 2:d6cde3037eac | 185 | |
mcm | 2:d6cde3037eac | 186 | /* Parse data */ |
mcm | 2:d6cde3037eac | 187 | myHumidity->humidity = ( (double)( myHumidity->rawHumidity ) / 65536.0 ) * 100.0; |
mcm | 2:d6cde3037eac | 188 | |
mcm | 2:d6cde3037eac | 189 | |
mcm | 2:d6cde3037eac | 190 | return aux; |
mcm | 2:d6cde3037eac | 191 | } |
mcm | 2:d6cde3037eac | 192 | |
mcm | 2:d6cde3037eac | 193 | |
mcm | 2:d6cde3037eac | 194 | |
mcm | 2:d6cde3037eac | 195 | /** |
mcm | 2:d6cde3037eac | 196 | * @brief HDC2080_GetInterrupt_DRDY_Status ( HDC2080_data_t* ) |
mcm | 2:d6cde3037eac | 197 | * |
mcm | 2:d6cde3037eac | 198 | * @details It gets the interrupt DRDY status. |
mcm | 2:d6cde3037eac | 199 | * |
mcm | 2:d6cde3037eac | 200 | * @param[in] N/A. |
mcm | 2:d6cde3037eac | 201 | * |
mcm | 2:d6cde3037eac | 202 | * @param[out] myStatus: Interrupt DRDY status. |
mcm | 2:d6cde3037eac | 203 | * |
mcm | 2:d6cde3037eac | 204 | * |
mcm | 2:d6cde3037eac | 205 | * @return Status of HDC2080_GetInterrupt_DRDY_Status. |
mcm | 2:d6cde3037eac | 206 | * |
mcm | 2:d6cde3037eac | 207 | * |
mcm | 2:d6cde3037eac | 208 | * @author Manuel Caballero |
mcm | 2:d6cde3037eac | 209 | * @date 19/November/2019 |
mcm | 2:d6cde3037eac | 210 | * @version 19/November/2019 The ORIGIN |
mcm | 2:d6cde3037eac | 211 | * @pre N/A |
mcm | 2:d6cde3037eac | 212 | * @warning N/A. |
mcm | 2:d6cde3037eac | 213 | */ |
mcm | 2:d6cde3037eac | 214 | HDC2080::HDC2080_status_t HDC2080::HDC2080_GetInterrupt_DRDY_Status ( HDC2080_data_t* myStatus ) |
mcm | 2:d6cde3037eac | 215 | { |
mcm | 2:d6cde3037eac | 216 | char cmd = 0U; |
mcm | 2:d6cde3037eac | 217 | uint32_t aux; |
mcm | 2:d6cde3037eac | 218 | |
mcm | 2:d6cde3037eac | 219 | /* Read the register */ |
mcm | 2:d6cde3037eac | 220 | cmd = HDC2080_INTERRUPT_DRDY; |
mcm | 2:d6cde3037eac | 221 | aux = _i2c.write ( _HDC2080_Addr, &cmd, 1U, true ); |
mcm | 2:d6cde3037eac | 222 | aux = _i2c.read ( _HDC2080_Addr, &cmd, 1U ); |
mcm | 2:d6cde3037eac | 223 | |
mcm | 2:d6cde3037eac | 224 | |
mcm | 2:d6cde3037eac | 225 | /* Parse data */ |
mcm | 2:d6cde3037eac | 226 | myStatus->interrupt_drdy_status = (HDC2080_interrupt_drdy_drdy_status_t)( INTERRUPT_DRDY_DRDY_STATUS_MASK & cmd ); |
mcm | 2:d6cde3037eac | 227 | |
mcm | 2:d6cde3037eac | 228 | |
mcm | 2:d6cde3037eac | 229 | |
mcm | 2:d6cde3037eac | 230 | if ( aux == I2C_SUCCESS ) { |
mcm | 2:d6cde3037eac | 231 | return HDC2080_SUCCESS; |
mcm | 2:d6cde3037eac | 232 | } else { |
mcm | 2:d6cde3037eac | 233 | return HDC2080_FAILURE; |
mcm | 2:d6cde3037eac | 234 | } |
mcm | 2:d6cde3037eac | 235 | } |
mcm | 2:d6cde3037eac | 236 | |
mcm | 2:d6cde3037eac | 237 | |
mcm | 2:d6cde3037eac | 238 | |
mcm | 2:d6cde3037eac | 239 | /** |
mcm | 2:d6cde3037eac | 240 | * @brief HDC2080_ConfTemperatureMax ( HDC2080_data_t ) |
mcm | 2:d6cde3037eac | 241 | * |
mcm | 2:d6cde3037eac | 242 | * @details It configures the temperature MAX register. |
mcm | 2:d6cde3037eac | 243 | * |
mcm | 2:d6cde3037eac | 244 | * @param[in] myTemperatureMax: Temperature max raw value. |
mcm | 2:d6cde3037eac | 245 | * |
mcm | 2:d6cde3037eac | 246 | * @param[out] N/A |
mcm | 2:d6cde3037eac | 247 | * |
mcm | 2:d6cde3037eac | 248 | * |
mcm | 2:d6cde3037eac | 249 | * @return Status of HDC2080_ConfTemperatureMax. |
mcm | 2:d6cde3037eac | 250 | * |
mcm | 2:d6cde3037eac | 251 | * |
mcm | 2:d6cde3037eac | 252 | * @author Manuel Caballero |
mcm | 2:d6cde3037eac | 253 | * @date 19/November/2019 |
mcm | 2:d6cde3037eac | 254 | * @version 19/November/2019 The ORIGIN |
mcm | 2:d6cde3037eac | 255 | * @pre N/A |
mcm | 2:d6cde3037eac | 256 | * @warning N/A. |
mcm | 2:d6cde3037eac | 257 | */ |
mcm | 2:d6cde3037eac | 258 | HDC2080::HDC2080_status_t HDC2080::HDC2080_ConfTemperatureMax ( HDC2080_data_t myTemperatureMax ) |
mcm | 2:d6cde3037eac | 259 | { |
mcm | 2:d6cde3037eac | 260 | char cmd[2] = { 0U }; |
mcm | 2:d6cde3037eac | 261 | uint32_t aux; |
mcm | 2:d6cde3037eac | 262 | |
mcm | 2:d6cde3037eac | 263 | /* Read the register */ |
mcm | 2:d6cde3037eac | 264 | cmd[0] = HDC2080_TEMPERATURE_MAX; |
mcm | 2:d6cde3037eac | 265 | cmd[1] = myTemperatureMax.rawTemperature_max; |
mcm | 2:d6cde3037eac | 266 | aux = _i2c.write ( _HDC2080_Addr, &cmd[0], sizeof( cmd )/sizeof( cmd[0] ), false ); |
mcm | 2:d6cde3037eac | 267 | |
mcm | 2:d6cde3037eac | 268 | |
mcm | 2:d6cde3037eac | 269 | if ( aux == I2C_SUCCESS ) { |
mcm | 2:d6cde3037eac | 270 | return HDC2080_SUCCESS; |
mcm | 2:d6cde3037eac | 271 | } else { |
mcm | 2:d6cde3037eac | 272 | return HDC2080_FAILURE; |
mcm | 2:d6cde3037eac | 273 | } |
mcm | 2:d6cde3037eac | 274 | } |
mcm | 2:d6cde3037eac | 275 | |
mcm | 2:d6cde3037eac | 276 | |
mcm | 2:d6cde3037eac | 277 | |
mcm | 2:d6cde3037eac | 278 | /** |
mcm | 2:d6cde3037eac | 279 | * @brief HDC2080_ConfHumidityMax ( HDC2080_data_t ) |
mcm | 2:d6cde3037eac | 280 | * |
mcm | 2:d6cde3037eac | 281 | * @details It configures the humidity MAX register. |
mcm | 2:d6cde3037eac | 282 | * |
mcm | 2:d6cde3037eac | 283 | * @param[in] myTemperatureMax: Humidity max raw value. |
mcm | 2:d6cde3037eac | 284 | * |
mcm | 2:d6cde3037eac | 285 | * @param[out] N/A. |
mcm | 2:d6cde3037eac | 286 | * |
mcm | 2:d6cde3037eac | 287 | * |
mcm | 2:d6cde3037eac | 288 | * @return Status of HDC2080_ConfHumidityMax. |
mcm | 2:d6cde3037eac | 289 | * |
mcm | 2:d6cde3037eac | 290 | * |
mcm | 2:d6cde3037eac | 291 | * @author Manuel Caballero |
mcm | 2:d6cde3037eac | 292 | * @date 19/November/2019 |
mcm | 2:d6cde3037eac | 293 | * @version 19/November/2019 The ORIGIN |
mcm | 2:d6cde3037eac | 294 | * @pre N/A |
mcm | 2:d6cde3037eac | 295 | * @warning N/A. |
mcm | 2:d6cde3037eac | 296 | */ |
mcm | 2:d6cde3037eac | 297 | HDC2080::HDC2080_status_t HDC2080::HDC2080_ConfHumidityMax ( HDC2080_data_t myHumidityMax ) |
mcm | 2:d6cde3037eac | 298 | { |
mcm | 2:d6cde3037eac | 299 | char cmd[2] = { 0U }; |
mcm | 2:d6cde3037eac | 300 | uint32_t aux; |
mcm | 2:d6cde3037eac | 301 | |
mcm | 2:d6cde3037eac | 302 | /* Read the register */ |
mcm | 2:d6cde3037eac | 303 | cmd[0] = HDC2080_HUMIDITY_MAX; |
mcm | 2:d6cde3037eac | 304 | cmd[1] = myHumidityMax.rawHumidity_max; |
mcm | 2:d6cde3037eac | 305 | aux = _i2c.write ( _HDC2080_Addr, &cmd[0], sizeof( cmd )/sizeof( cmd[0] ), false ); |
mcm | 2:d6cde3037eac | 306 | |
mcm | 2:d6cde3037eac | 307 | |
mcm | 2:d6cde3037eac | 308 | if ( aux == I2C_SUCCESS ) { |
mcm | 2:d6cde3037eac | 309 | return HDC2080_SUCCESS; |
mcm | 2:d6cde3037eac | 310 | } else { |
mcm | 2:d6cde3037eac | 311 | return HDC2080_FAILURE; |
mcm | 2:d6cde3037eac | 312 | } |
mcm | 2:d6cde3037eac | 313 | } |
mcm | 2:d6cde3037eac | 314 | |
mcm | 2:d6cde3037eac | 315 | |
mcm | 2:d6cde3037eac | 316 | |
mcm | 2:d6cde3037eac | 317 | /** |
mcm | 2:d6cde3037eac | 318 | * @brief HDC2080_GetInterruptConfiguration ( HDC2080_data_t* ) |
mcm | 2:d6cde3037eac | 319 | * |
mcm | 2:d6cde3037eac | 320 | * @details It gets the interrupt configuration bits. |
mcm | 2:d6cde3037eac | 321 | * |
mcm | 2:d6cde3037eac | 322 | * @param[in] N/A. |
mcm | 2:d6cde3037eac | 323 | * |
mcm | 2:d6cde3037eac | 324 | * @param[out] myIntConfiguration: DRDY_ENABLE, TH_ENABLE, TL_ENABLE, HH_ENABLE and HL_ENABLE status. |
mcm | 2:d6cde3037eac | 325 | * |
mcm | 2:d6cde3037eac | 326 | * |
mcm | 2:d6cde3037eac | 327 | * @return Status of HDC2080_GetInterruptConfiguration. |
mcm | 2:d6cde3037eac | 328 | * |
mcm | 2:d6cde3037eac | 329 | * |
mcm | 2:d6cde3037eac | 330 | * @author Manuel Caballero |
mcm | 2:d6cde3037eac | 331 | * @date 19/November/2019 |
mcm | 2:d6cde3037eac | 332 | * @version 19/November/2019 The ORIGIN |
mcm | 2:d6cde3037eac | 333 | * @pre N/A |
mcm | 2:d6cde3037eac | 334 | * @warning N/A. |
mcm | 2:d6cde3037eac | 335 | */ |
mcm | 2:d6cde3037eac | 336 | HDC2080::HDC2080_status_t HDC2080::HDC2080_GetInterruptConfiguration ( HDC2080_data_t* myIntConfiguration ) |
mcm | 2:d6cde3037eac | 337 | { |
mcm | 2:d6cde3037eac | 338 | char cmd = 0U; |
mcm | 2:d6cde3037eac | 339 | uint32_t aux; |
mcm | 2:d6cde3037eac | 340 | |
mcm | 2:d6cde3037eac | 341 | /* Read the register */ |
mcm | 2:d6cde3037eac | 342 | cmd = HDC2080_INTERRUPT_ENABLE; |
mcm | 2:d6cde3037eac | 343 | aux = _i2c.write ( _HDC2080_Addr, &cmd, 1U, true ); |
mcm | 2:d6cde3037eac | 344 | aux = _i2c.read ( _HDC2080_Addr, &cmd, 1U ); |
mcm | 2:d6cde3037eac | 345 | |
mcm | 2:d6cde3037eac | 346 | /* Parse the data */ |
mcm | 2:d6cde3037eac | 347 | myIntConfiguration->drdy_enable = (HDC2080_interrupt_enable_drdy_enable_t)( cmd & INTERRUPT_DRDY_DRDY_ENABLE_MASK ); |
mcm | 2:d6cde3037eac | 348 | myIntConfiguration->th_enable = (HDC2080_interrupt_enable_th_enable_t)( cmd & INTERRUPT_DRDY_TH_ENABLE_MASK ); |
mcm | 2:d6cde3037eac | 349 | myIntConfiguration->tl_enable = (HDC2080_interrupt_enable_tl_enable_t)( cmd & INTERRUPT_DRDY_TL_ENABLE_MASK ); |
mcm | 2:d6cde3037eac | 350 | myIntConfiguration->hh_enable = (HDC2080_interrupt_enable_hh_enable_t)( cmd & INTERRUPT_DRDY_HH_ENABLE_MASK ); |
mcm | 2:d6cde3037eac | 351 | myIntConfiguration->hl_enable = (HDC2080_interrupt_enable_hl_enable_t)( cmd & INTERRUPT_DRDY_HL_ENABLE_MASK ); |
mcm | 2:d6cde3037eac | 352 | |
mcm | 2:d6cde3037eac | 353 | |
mcm | 2:d6cde3037eac | 354 | if ( aux == I2C_SUCCESS ) { |
mcm | 2:d6cde3037eac | 355 | return HDC2080_SUCCESS; |
mcm | 2:d6cde3037eac | 356 | } else { |
mcm | 2:d6cde3037eac | 357 | return HDC2080_FAILURE; |
mcm | 2:d6cde3037eac | 358 | } |
mcm | 2:d6cde3037eac | 359 | } |
mcm | 2:d6cde3037eac | 360 | |
mcm | 2:d6cde3037eac | 361 | |
mcm | 2:d6cde3037eac | 362 | |
mcm | 2:d6cde3037eac | 363 | /** |
mcm | 2:d6cde3037eac | 364 | * @brief HDC2080_SetInterruptConfiguration ( HDC2080_data_t ) |
mcm | 2:d6cde3037eac | 365 | * |
mcm | 2:d6cde3037eac | 366 | * @details It configures the humidity MAX register. |
mcm | 2:d6cde3037eac | 367 | * |
mcm | 2:d6cde3037eac | 368 | * @param[in] myIntConfiguration: DRDY_ENABLE, TH_ENABLE, TL_ENABLE, HH_ENABLE and HL_ENABLE. |
mcm | 2:d6cde3037eac | 369 | * |
mcm | 2:d6cde3037eac | 370 | * @param[out] N/A. |
mcm | 2:d6cde3037eac | 371 | * |
mcm | 2:d6cde3037eac | 372 | * |
mcm | 2:d6cde3037eac | 373 | * @return Status of HDC2080_SetInterruptConfiguration. |
mcm | 2:d6cde3037eac | 374 | * |
mcm | 2:d6cde3037eac | 375 | * |
mcm | 2:d6cde3037eac | 376 | * @author Manuel Caballero |
mcm | 2:d6cde3037eac | 377 | * @date 19/November/2019 |
mcm | 2:d6cde3037eac | 378 | * @version 19/November/2019 The ORIGIN |
mcm | 2:d6cde3037eac | 379 | * @pre N/A |
mcm | 2:d6cde3037eac | 380 | * @warning N/A. |
mcm | 2:d6cde3037eac | 381 | */ |
mcm | 2:d6cde3037eac | 382 | HDC2080::HDC2080_status_t HDC2080::HDC2080_SetInterruptConfiguration ( HDC2080_data_t myIntConfiguration ) |
mcm | 2:d6cde3037eac | 383 | { |
mcm | 2:d6cde3037eac | 384 | char cmd[2] = { 0U }; |
mcm | 2:d6cde3037eac | 385 | uint32_t aux; |
mcm | 2:d6cde3037eac | 386 | |
mcm | 2:d6cde3037eac | 387 | /* Read the register */ |
mcm | 2:d6cde3037eac | 388 | cmd[0] = HDC2080_INTERRUPT_ENABLE; |
mcm | 2:d6cde3037eac | 389 | aux = _i2c.write ( _HDC2080_Addr, &cmd[0], 1U, true ); |
mcm | 2:d6cde3037eac | 390 | aux = _i2c.read ( _HDC2080_Addr, &cmd[1], 1U ); |
mcm | 2:d6cde3037eac | 391 | |
mcm | 2:d6cde3037eac | 392 | /* Update the register */ |
mcm | 2:d6cde3037eac | 393 | cmd[1] &= ~( INTERRUPT_DRDY_DRDY_ENABLE_MASK | INTERRUPT_DRDY_TH_ENABLE_MASK | INTERRUPT_DRDY_TL_ENABLE_MASK | INTERRUPT_DRDY_HH_ENABLE_MASK | INTERRUPT_DRDY_HL_ENABLE_MASK ); |
mcm | 2:d6cde3037eac | 394 | cmd[1] |= ( myIntConfiguration.drdy_enable | myIntConfiguration.th_enable | myIntConfiguration.tl_enable | myIntConfiguration.hh_enable | myIntConfiguration.hl_enable ); |
mcm | 2:d6cde3037eac | 395 | aux = _i2c.write ( _HDC2080_Addr, &cmd[0], sizeof( cmd )/sizeof( cmd[0] ), false ); |
mcm | 2:d6cde3037eac | 396 | |
mcm | 2:d6cde3037eac | 397 | |
mcm | 2:d6cde3037eac | 398 | |
mcm | 2:d6cde3037eac | 399 | if ( aux == I2C_SUCCESS ) { |
mcm | 2:d6cde3037eac | 400 | return HDC2080_SUCCESS; |
mcm | 2:d6cde3037eac | 401 | } else { |
mcm | 2:d6cde3037eac | 402 | return HDC2080_FAILURE; |
mcm | 2:d6cde3037eac | 403 | } |
mcm | 2:d6cde3037eac | 404 | } |
mcm | 2:d6cde3037eac | 405 | |
mcm | 2:d6cde3037eac | 406 | |
mcm | 2:d6cde3037eac | 407 | |
mcm | 2:d6cde3037eac | 408 | /** |
mcm | 2:d6cde3037eac | 409 | * @brief HDC2080_SetTemperatureOffset ( HDC2080_data_t ) |
mcm | 2:d6cde3037eac | 410 | * |
mcm | 2:d6cde3037eac | 411 | * @details It sets the temperature offset. |
mcm | 2:d6cde3037eac | 412 | * |
mcm | 2:d6cde3037eac | 413 | * @param[in] myTemperatureOffset: Temperature offset value. |
mcm | 2:d6cde3037eac | 414 | * |
mcm | 2:d6cde3037eac | 415 | * @param[out] N/A. |
mcm | 2:d6cde3037eac | 416 | * |
mcm | 2:d6cde3037eac | 417 | * |
mcm | 2:d6cde3037eac | 418 | * @return Status of HDC2080_SetTemperatureOffset. |
mcm | 2:d6cde3037eac | 419 | * |
mcm | 2:d6cde3037eac | 420 | * |
mcm | 2:d6cde3037eac | 421 | * @author Manuel Caballero |
mcm | 2:d6cde3037eac | 422 | * @date 19/November/2019 |
mcm | 2:d6cde3037eac | 423 | * @version 19/November/2019 The ORIGIN |
mcm | 2:d6cde3037eac | 424 | * @pre N/A |
mcm | 2:d6cde3037eac | 425 | * @warning N/A. |
mcm | 2:d6cde3037eac | 426 | */ |
mcm | 2:d6cde3037eac | 427 | HDC2080::HDC2080_status_t HDC2080::HDC2080_SetTemperatureOffset ( HDC2080_data_t myTemperatureOffset ) |
mcm | 2:d6cde3037eac | 428 | { |
mcm | 2:d6cde3037eac | 429 | char cmd[2] = { 0U }; |
mcm | 2:d6cde3037eac | 430 | uint32_t aux; |
mcm | 2:d6cde3037eac | 431 | |
mcm | 2:d6cde3037eac | 432 | /* Write the register */ |
mcm | 2:d6cde3037eac | 433 | cmd[0] = HDC2080_TEMP_OFFSET_ADJUST; |
mcm | 2:d6cde3037eac | 434 | cmd[1] = myTemperatureOffset.temp_offset_adjust; |
mcm | 2:d6cde3037eac | 435 | aux = _i2c.write ( _HDC2080_Addr, &cmd[0], sizeof( cmd )/sizeof( cmd[0] ), false ); |
mcm | 2:d6cde3037eac | 436 | |
mcm | 2:d6cde3037eac | 437 | |
mcm | 2:d6cde3037eac | 438 | |
mcm | 2:d6cde3037eac | 439 | if ( aux == I2C_SUCCESS ) { |
mcm | 2:d6cde3037eac | 440 | return HDC2080_SUCCESS; |
mcm | 2:d6cde3037eac | 441 | } else { |
mcm | 2:d6cde3037eac | 442 | return HDC2080_FAILURE; |
mcm | 2:d6cde3037eac | 443 | } |
mcm | 2:d6cde3037eac | 444 | } |
mcm | 2:d6cde3037eac | 445 | |
mcm | 2:d6cde3037eac | 446 | |
mcm | 2:d6cde3037eac | 447 | |
mcm | 2:d6cde3037eac | 448 | /** |
mcm | 2:d6cde3037eac | 449 | * @brief HDC2080_GetTemperatureOffset ( HDC2080_data_t* ) |
mcm | 2:d6cde3037eac | 450 | * |
mcm | 2:d6cde3037eac | 451 | * @details It gets the temperature offset ( raw value ). |
mcm | 2:d6cde3037eac | 452 | * |
mcm | 2:d6cde3037eac | 453 | * @param[in] N/A |
mcm | 2:d6cde3037eac | 454 | * |
mcm | 2:d6cde3037eac | 455 | * @param[out] myTemperatureOffset: Temperature offset value ( raw value ). |
mcm | 2:d6cde3037eac | 456 | * |
mcm | 2:d6cde3037eac | 457 | * |
mcm | 2:d6cde3037eac | 458 | * @return Status of HDC2080_GetTemperatureOffset. |
mcm | 2:d6cde3037eac | 459 | * |
mcm | 2:d6cde3037eac | 460 | * |
mcm | 2:d6cde3037eac | 461 | * @author Manuel Caballero |
mcm | 2:d6cde3037eac | 462 | * @date 19/November/2019 |
mcm | 2:d6cde3037eac | 463 | * @version 19/November/2019 The ORIGIN |
mcm | 2:d6cde3037eac | 464 | * @pre N/A |
mcm | 2:d6cde3037eac | 465 | * @warning N/A. |
mcm | 2:d6cde3037eac | 466 | */ |
mcm | 2:d6cde3037eac | 467 | HDC2080::HDC2080_status_t HDC2080::HDC2080_GetTemperatureOffset ( HDC2080_data_t* myTemperatureOffset ) |
mcm | 2:d6cde3037eac | 468 | { |
mcm | 2:d6cde3037eac | 469 | char cmd = 0U; |
mcm | 2:d6cde3037eac | 470 | uint32_t aux; |
mcm | 2:d6cde3037eac | 471 | |
mcm | 2:d6cde3037eac | 472 | /* Read the register */ |
mcm | 2:d6cde3037eac | 473 | cmd = HDC2080_TEMP_OFFSET_ADJUST; |
mcm | 2:d6cde3037eac | 474 | aux = _i2c.write ( _HDC2080_Addr, &cmd, 1U, true ); |
mcm | 2:d6cde3037eac | 475 | aux = _i2c.read ( _HDC2080_Addr, &cmd, 1U ); |
mcm | 2:d6cde3037eac | 476 | |
mcm | 2:d6cde3037eac | 477 | /* Parse the data */ |
mcm | 2:d6cde3037eac | 478 | myTemperatureOffset->temp_offset_adjust = cmd; |
mcm | 2:d6cde3037eac | 479 | |
mcm | 2:d6cde3037eac | 480 | |
mcm | 2:d6cde3037eac | 481 | |
mcm | 2:d6cde3037eac | 482 | if ( aux == I2C_SUCCESS ) { |
mcm | 2:d6cde3037eac | 483 | return HDC2080_SUCCESS; |
mcm | 2:d6cde3037eac | 484 | } else { |
mcm | 2:d6cde3037eac | 485 | return HDC2080_FAILURE; |
mcm | 2:d6cde3037eac | 486 | } |
mcm | 2:d6cde3037eac | 487 | } |
mcm | 2:d6cde3037eac | 488 | |
mcm | 2:d6cde3037eac | 489 | |
mcm | 2:d6cde3037eac | 490 | |
mcm | 2:d6cde3037eac | 491 | /** |
mcm | 2:d6cde3037eac | 492 | * @brief HDC2080_SetHumidityOffset ( HDC2080_data_t ) |
mcm | 2:d6cde3037eac | 493 | * |
mcm | 2:d6cde3037eac | 494 | * @details It sets the humidity offset. |
mcm | 2:d6cde3037eac | 495 | * |
mcm | 2:d6cde3037eac | 496 | * @param[in] myHumidityOffset: Humidity offset value. |
mcm | 2:d6cde3037eac | 497 | * |
mcm | 2:d6cde3037eac | 498 | * @param[out] N/A. |
mcm | 2:d6cde3037eac | 499 | * |
mcm | 2:d6cde3037eac | 500 | * |
mcm | 2:d6cde3037eac | 501 | * @return Status of HDC2080_SetHumidityOffset. |
mcm | 2:d6cde3037eac | 502 | * |
mcm | 2:d6cde3037eac | 503 | * |
mcm | 2:d6cde3037eac | 504 | * @author Manuel Caballero |
mcm | 2:d6cde3037eac | 505 | * @date 19/November/2019 |
mcm | 2:d6cde3037eac | 506 | * @version 19/November/2019 The ORIGIN |
mcm | 2:d6cde3037eac | 507 | * @pre N/A |
mcm | 2:d6cde3037eac | 508 | * @warning N/A. |
mcm | 2:d6cde3037eac | 509 | */ |
mcm | 2:d6cde3037eac | 510 | HDC2080::HDC2080_status_t HDC2080::HDC2080_SetHumidityOffset ( HDC2080_data_t myHumidityOffset ) |
mcm | 2:d6cde3037eac | 511 | { |
mcm | 2:d6cde3037eac | 512 | char cmd[2] = { 0U }; |
mcm | 2:d6cde3037eac | 513 | uint32_t aux; |
mcm | 2:d6cde3037eac | 514 | |
mcm | 2:d6cde3037eac | 515 | /* Write the register */ |
mcm | 2:d6cde3037eac | 516 | cmd[0] = HDC2080_HUM_OFFSET_ADJUST; |
mcm | 2:d6cde3037eac | 517 | cmd[1] = myHumidityOffset.hum_offset_adjust; |
mcm | 2:d6cde3037eac | 518 | aux = _i2c.write ( _HDC2080_Addr, &cmd[0], sizeof( cmd )/sizeof( cmd[0] ), false ); |
mcm | 2:d6cde3037eac | 519 | |
mcm | 2:d6cde3037eac | 520 | |
mcm | 2:d6cde3037eac | 521 | |
mcm | 2:d6cde3037eac | 522 | if ( aux == I2C_SUCCESS ) { |
mcm | 2:d6cde3037eac | 523 | return HDC2080_SUCCESS; |
mcm | 2:d6cde3037eac | 524 | } else { |
mcm | 2:d6cde3037eac | 525 | return HDC2080_FAILURE; |
mcm | 2:d6cde3037eac | 526 | } |
mcm | 2:d6cde3037eac | 527 | } |
mcm | 2:d6cde3037eac | 528 | |
mcm | 2:d6cde3037eac | 529 | |
mcm | 2:d6cde3037eac | 530 | |
mcm | 2:d6cde3037eac | 531 | /** |
mcm | 2:d6cde3037eac | 532 | * @brief HDC2080_GetHumidityOffset ( HDC2080_data_t* ) |
mcm | 2:d6cde3037eac | 533 | * |
mcm | 2:d6cde3037eac | 534 | * @details It gets the humidity offset ( raw value ). |
mcm | 2:d6cde3037eac | 535 | * |
mcm | 2:d6cde3037eac | 536 | * @param[in] N/A. |
mcm | 2:d6cde3037eac | 537 | * |
mcm | 2:d6cde3037eac | 538 | * @param[out] myHumidityOffset: Humidity offset value ( raw value ). |
mcm | 2:d6cde3037eac | 539 | * |
mcm | 2:d6cde3037eac | 540 | * |
mcm | 2:d6cde3037eac | 541 | * @return Status of HDC2080_GetHumidityOffset. |
mcm | 2:d6cde3037eac | 542 | * |
mcm | 2:d6cde3037eac | 543 | * |
mcm | 2:d6cde3037eac | 544 | * @author Manuel Caballero |
mcm | 2:d6cde3037eac | 545 | * @date 19/November/2019 |
mcm | 2:d6cde3037eac | 546 | * @version 19/November/2019 The ORIGIN |
mcm | 2:d6cde3037eac | 547 | * @pre N/A |
mcm | 2:d6cde3037eac | 548 | * @warning N/A. |
mcm | 2:d6cde3037eac | 549 | */ |
mcm | 2:d6cde3037eac | 550 | HDC2080::HDC2080_status_t HDC2080::HDC2080_GetHumidityOffset ( HDC2080_data_t* myHumidityOffset ) |
mcm | 2:d6cde3037eac | 551 | { |
mcm | 2:d6cde3037eac | 552 | char cmd = 0U; |
mcm | 2:d6cde3037eac | 553 | uint32_t aux; |
mcm | 2:d6cde3037eac | 554 | |
mcm | 2:d6cde3037eac | 555 | /* Read the register */ |
mcm | 2:d6cde3037eac | 556 | cmd = HDC2080_HUM_OFFSET_ADJUST; |
mcm | 2:d6cde3037eac | 557 | aux = _i2c.write ( _HDC2080_Addr, &cmd, 1U, true ); |
mcm | 2:d6cde3037eac | 558 | aux = _i2c.read ( _HDC2080_Addr, &cmd, 1U ); |
mcm | 2:d6cde3037eac | 559 | |
mcm | 2:d6cde3037eac | 560 | /* Parse the data */ |
mcm | 2:d6cde3037eac | 561 | myHumidityOffset->hum_offset_adjust = cmd; |
mcm | 2:d6cde3037eac | 562 | |
mcm | 2:d6cde3037eac | 563 | |
mcm | 2:d6cde3037eac | 564 | |
mcm | 2:d6cde3037eac | 565 | if ( aux == I2C_SUCCESS ) { |
mcm | 2:d6cde3037eac | 566 | return HDC2080_SUCCESS; |
mcm | 2:d6cde3037eac | 567 | } else { |
mcm | 2:d6cde3037eac | 568 | return HDC2080_FAILURE; |
mcm | 2:d6cde3037eac | 569 | } |
mcm | 2:d6cde3037eac | 570 | } |
mcm | 2:d6cde3037eac | 571 | |
mcm | 2:d6cde3037eac | 572 | |
mcm | 2:d6cde3037eac | 573 | |
mcm | 2:d6cde3037eac | 574 | /** |
mcm | 2:d6cde3037eac | 575 | * @brief HDC2080_SetTemperatureThresLow ( HDC2080_data_t ) |
mcm | 2:d6cde3037eac | 576 | * |
mcm | 2:d6cde3037eac | 577 | * @details It sets the temperature threshold low value ( raw value ). |
mcm | 2:d6cde3037eac | 578 | * |
mcm | 2:d6cde3037eac | 579 | * @param[in] myTempThresLow: Temperature threshold low value ( raw value ). |
mcm | 2:d6cde3037eac | 580 | * |
mcm | 2:d6cde3037eac | 581 | * @param[out] N/A. |
mcm | 2:d6cde3037eac | 582 | * |
mcm | 2:d6cde3037eac | 583 | * |
mcm | 2:d6cde3037eac | 584 | * @return Status of HDC2080_SetTemperatureThresLow. |
mcm | 2:d6cde3037eac | 585 | * |
mcm | 2:d6cde3037eac | 586 | * |
mcm | 2:d6cde3037eac | 587 | * @author Manuel Caballero |
mcm | 2:d6cde3037eac | 588 | * @date 19/November/2019 |
mcm | 2:d6cde3037eac | 589 | * @version 19/November/2019 The ORIGIN |
mcm | 2:d6cde3037eac | 590 | * @pre N/A |
mcm | 2:d6cde3037eac | 591 | * @warning N/A. |
mcm | 2:d6cde3037eac | 592 | */ |
mcm | 2:d6cde3037eac | 593 | HDC2080::HDC2080_status_t HDC2080::HDC2080_SetTemperatureThresLow ( HDC2080_data_t myTempThresLow ) |
mcm | 2:d6cde3037eac | 594 | { |
mcm | 2:d6cde3037eac | 595 | char cmd[2] = { 0U }; |
mcm | 2:d6cde3037eac | 596 | uint32_t aux; |
mcm | 2:d6cde3037eac | 597 | |
mcm | 2:d6cde3037eac | 598 | /* Write the register */ |
mcm | 2:d6cde3037eac | 599 | cmd[0] = HDC2080_TEMP_THR_L; |
mcm | 2:d6cde3037eac | 600 | cmd[1] = myTempThresLow.temp_thres_low; |
mcm | 2:d6cde3037eac | 601 | aux = _i2c.write ( _HDC2080_Addr, &cmd[0], sizeof( cmd )/sizeof( cmd[0] ), false ); |
mcm | 2:d6cde3037eac | 602 | |
mcm | 2:d6cde3037eac | 603 | |
mcm | 2:d6cde3037eac | 604 | |
mcm | 2:d6cde3037eac | 605 | if ( aux == I2C_SUCCESS ) { |
mcm | 2:d6cde3037eac | 606 | return HDC2080_SUCCESS; |
mcm | 2:d6cde3037eac | 607 | } else { |
mcm | 2:d6cde3037eac | 608 | return HDC2080_FAILURE; |
mcm | 2:d6cde3037eac | 609 | } |
mcm | 2:d6cde3037eac | 610 | } |
mcm | 2:d6cde3037eac | 611 | |
mcm | 2:d6cde3037eac | 612 | |
mcm | 2:d6cde3037eac | 613 | |
mcm | 2:d6cde3037eac | 614 | /** |
mcm | 2:d6cde3037eac | 615 | * @brief HDC2080_GetTemperatureThresLow ( HDC2080_data_t* ) |
mcm | 2:d6cde3037eac | 616 | * |
mcm | 2:d6cde3037eac | 617 | * @details It gets the temperature threshold low value ( raw value ). |
mcm | 2:d6cde3037eac | 618 | * |
mcm | 2:d6cde3037eac | 619 | * @param[in] N/A. |
mcm | 2:d6cde3037eac | 620 | * |
mcm | 2:d6cde3037eac | 621 | * @param[out] myTempThresLow: Temperature threshold low value ( raw value ). |
mcm | 2:d6cde3037eac | 622 | * |
mcm | 2:d6cde3037eac | 623 | * |
mcm | 2:d6cde3037eac | 624 | * @return Status of HDC2080_GetTemperatureThresLow. |
mcm | 2:d6cde3037eac | 625 | * |
mcm | 2:d6cde3037eac | 626 | * |
mcm | 2:d6cde3037eac | 627 | * @author Manuel Caballero |
mcm | 2:d6cde3037eac | 628 | * @date 19/November/2019 |
mcm | 2:d6cde3037eac | 629 | * @version 19/November/2019 The ORIGIN |
mcm | 2:d6cde3037eac | 630 | * @pre N/A |
mcm | 2:d6cde3037eac | 631 | * @warning N/A. |
mcm | 2:d6cde3037eac | 632 | */ |
mcm | 2:d6cde3037eac | 633 | HDC2080::HDC2080_status_t HDC2080::HDC2080_GetTemperatureThresLow ( HDC2080_data_t* myTempThresLow ) |
mcm | 2:d6cde3037eac | 634 | { |
mcm | 2:d6cde3037eac | 635 | char cmd = 0U; |
mcm | 2:d6cde3037eac | 636 | uint32_t aux; |
mcm | 2:d6cde3037eac | 637 | |
mcm | 2:d6cde3037eac | 638 | /* Read the register */ |
mcm | 2:d6cde3037eac | 639 | cmd = HDC2080_TEMP_THR_L; |
mcm | 2:d6cde3037eac | 640 | aux = _i2c.write ( _HDC2080_Addr, &cmd, 1U, true ); |
mcm | 2:d6cde3037eac | 641 | aux = _i2c.read ( _HDC2080_Addr, &cmd, 1U ); |
mcm | 2:d6cde3037eac | 642 | |
mcm | 2:d6cde3037eac | 643 | /* Parse the data */ |
mcm | 2:d6cde3037eac | 644 | myTempThresLow->temp_thres_low = cmd; |
mcm | 2:d6cde3037eac | 645 | |
mcm | 2:d6cde3037eac | 646 | |
mcm | 2:d6cde3037eac | 647 | |
mcm | 2:d6cde3037eac | 648 | if ( aux == I2C_SUCCESS ) { |
mcm | 2:d6cde3037eac | 649 | return HDC2080_SUCCESS; |
mcm | 2:d6cde3037eac | 650 | } else { |
mcm | 2:d6cde3037eac | 651 | return HDC2080_FAILURE; |
mcm | 2:d6cde3037eac | 652 | } |
mcm | 2:d6cde3037eac | 653 | } |
mcm | 2:d6cde3037eac | 654 | |
mcm | 2:d6cde3037eac | 655 | |
mcm | 2:d6cde3037eac | 656 | |
mcm | 2:d6cde3037eac | 657 | /** |
mcm | 2:d6cde3037eac | 658 | * @brief HDC2080_SetTemperatureThresHigh ( HDC2080_data_t ) |
mcm | 2:d6cde3037eac | 659 | * |
mcm | 2:d6cde3037eac | 660 | * @details It sets the temperature threshold high value ( raw value ). |
mcm | 2:d6cde3037eac | 661 | * |
mcm | 2:d6cde3037eac | 662 | * @param[in] myTempThresHigh: Temperature threshold high value ( raw value ). |
mcm | 2:d6cde3037eac | 663 | * |
mcm | 2:d6cde3037eac | 664 | * @param[out] N/A. |
mcm | 2:d6cde3037eac | 665 | * |
mcm | 2:d6cde3037eac | 666 | * |
mcm | 2:d6cde3037eac | 667 | * @return Status of HDC2080_SetTemperatureThresHigh. |
mcm | 2:d6cde3037eac | 668 | * |
mcm | 2:d6cde3037eac | 669 | * |
mcm | 2:d6cde3037eac | 670 | * @author Manuel Caballero |
mcm | 2:d6cde3037eac | 671 | * @date 19/November/2019 |
mcm | 2:d6cde3037eac | 672 | * @version 19/November/2019 The ORIGIN |
mcm | 2:d6cde3037eac | 673 | * @pre N/A |
mcm | 2:d6cde3037eac | 674 | * @warning N/A. |
mcm | 2:d6cde3037eac | 675 | */ |
mcm | 2:d6cde3037eac | 676 | HDC2080::HDC2080_status_t HDC2080::HDC2080_SetTemperatureThresHigh ( HDC2080_data_t myTempThresHigh ) |
mcm | 2:d6cde3037eac | 677 | { |
mcm | 2:d6cde3037eac | 678 | char cmd[2] = { 0U }; |
mcm | 2:d6cde3037eac | 679 | uint32_t aux; |
mcm | 2:d6cde3037eac | 680 | |
mcm | 2:d6cde3037eac | 681 | /* Write the register */ |
mcm | 2:d6cde3037eac | 682 | cmd[0] = HDC2080_TEMP_THR_H; |
mcm | 2:d6cde3037eac | 683 | cmd[1] = myTempThresHigh.temp_thres_high; |
mcm | 2:d6cde3037eac | 684 | aux = _i2c.write ( _HDC2080_Addr, &cmd[0], sizeof( cmd )/sizeof( cmd[0] ), false ); |
mcm | 2:d6cde3037eac | 685 | |
mcm | 2:d6cde3037eac | 686 | |
mcm | 2:d6cde3037eac | 687 | |
mcm | 2:d6cde3037eac | 688 | if ( aux == I2C_SUCCESS ) { |
mcm | 2:d6cde3037eac | 689 | return HDC2080_SUCCESS; |
mcm | 2:d6cde3037eac | 690 | } else { |
mcm | 2:d6cde3037eac | 691 | return HDC2080_FAILURE; |
mcm | 2:d6cde3037eac | 692 | } |
mcm | 2:d6cde3037eac | 693 | } |
mcm | 2:d6cde3037eac | 694 | |
mcm | 2:d6cde3037eac | 695 | |
mcm | 2:d6cde3037eac | 696 | |
mcm | 2:d6cde3037eac | 697 | /** |
mcm | 2:d6cde3037eac | 698 | * @brief HDC2080_GetTemperatureThresHigh ( HDC2080_data_t* ) |
mcm | 2:d6cde3037eac | 699 | * |
mcm | 2:d6cde3037eac | 700 | * @details It gets the temperature threshold high value ( raw value ). |
mcm | 2:d6cde3037eac | 701 | * |
mcm | 2:d6cde3037eac | 702 | * @param[in] N/A. |
mcm | 2:d6cde3037eac | 703 | * |
mcm | 2:d6cde3037eac | 704 | * @param[out] myTempThresHigh: Temperature threshold high value ( raw value ). |
mcm | 2:d6cde3037eac | 705 | * |
mcm | 2:d6cde3037eac | 706 | * |
mcm | 2:d6cde3037eac | 707 | * @return Status of HDC2080_GetTemperatureThresHigh. |
mcm | 2:d6cde3037eac | 708 | * |
mcm | 2:d6cde3037eac | 709 | * |
mcm | 2:d6cde3037eac | 710 | * @author Manuel Caballero |
mcm | 2:d6cde3037eac | 711 | * @date 19/November/2019 |
mcm | 2:d6cde3037eac | 712 | * @version 19/November/2019 The ORIGIN |
mcm | 2:d6cde3037eac | 713 | * @pre N/A |
mcm | 2:d6cde3037eac | 714 | * @warning N/A. |
mcm | 2:d6cde3037eac | 715 | */ |
mcm | 2:d6cde3037eac | 716 | HDC2080::HDC2080_status_t HDC2080::HDC2080_GetTemperatureThresHigh ( HDC2080_data_t* myTempThresHigh ) |
mcm | 2:d6cde3037eac | 717 | { |
mcm | 2:d6cde3037eac | 718 | char cmd = 0U; |
mcm | 2:d6cde3037eac | 719 | uint32_t aux; |
mcm | 2:d6cde3037eac | 720 | |
mcm | 2:d6cde3037eac | 721 | /* Read the register */ |
mcm | 2:d6cde3037eac | 722 | cmd = HDC2080_TEMP_THR_H; |
mcm | 2:d6cde3037eac | 723 | aux = _i2c.write ( _HDC2080_Addr, &cmd, 1U, true ); |
mcm | 2:d6cde3037eac | 724 | aux = _i2c.read ( _HDC2080_Addr, &cmd, 1U ); |
mcm | 2:d6cde3037eac | 725 | |
mcm | 2:d6cde3037eac | 726 | /* Parse the data */ |
mcm | 2:d6cde3037eac | 727 | myTempThresHigh->temp_thres_high = cmd; |
mcm | 2:d6cde3037eac | 728 | |
mcm | 2:d6cde3037eac | 729 | |
mcm | 2:d6cde3037eac | 730 | |
mcm | 2:d6cde3037eac | 731 | if ( aux == I2C_SUCCESS ) { |
mcm | 2:d6cde3037eac | 732 | return HDC2080_SUCCESS; |
mcm | 2:d6cde3037eac | 733 | } else { |
mcm | 2:d6cde3037eac | 734 | return HDC2080_FAILURE; |
mcm | 2:d6cde3037eac | 735 | } |
mcm | 2:d6cde3037eac | 736 | } |
mcm | 2:d6cde3037eac | 737 | |
mcm | 2:d6cde3037eac | 738 | |
mcm | 2:d6cde3037eac | 739 | |
mcm | 2:d6cde3037eac | 740 | /** |
mcm | 2:d6cde3037eac | 741 | * @brief HDC2080_SetHumidityThresLow ( HDC2080_data_t ) |
mcm | 2:d6cde3037eac | 742 | * |
mcm | 2:d6cde3037eac | 743 | * @details It sets the humidity threshold low value ( raw value ). |
mcm | 2:d6cde3037eac | 744 | * |
mcm | 2:d6cde3037eac | 745 | * @param[in] myTempThresLow: Humidity threshold low value ( raw value ). |
mcm | 2:d6cde3037eac | 746 | * |
mcm | 2:d6cde3037eac | 747 | * @param[out] N/A. |
mcm | 2:d6cde3037eac | 748 | * |
mcm | 2:d6cde3037eac | 749 | * |
mcm | 2:d6cde3037eac | 750 | * @return Status of HDC2080_SetHumidityThresLow. |
mcm | 2:d6cde3037eac | 751 | * |
mcm | 2:d6cde3037eac | 752 | * |
mcm | 2:d6cde3037eac | 753 | * @author Manuel Caballero |
mcm | 2:d6cde3037eac | 754 | * @date 19/November/2019 |
mcm | 2:d6cde3037eac | 755 | * @version 19/November/2019 The ORIGIN |
mcm | 2:d6cde3037eac | 756 | * @pre N/A |
mcm | 2:d6cde3037eac | 757 | * @warning N/A. |
mcm | 2:d6cde3037eac | 758 | */ |
mcm | 2:d6cde3037eac | 759 | HDC2080::HDC2080_status_t HDC2080::HDC2080_SetHumidityThresLow ( HDC2080_data_t myHumThresLow ) |
mcm | 2:d6cde3037eac | 760 | { |
mcm | 2:d6cde3037eac | 761 | char cmd[2] = { 0U }; |
mcm | 2:d6cde3037eac | 762 | uint32_t aux; |
mcm | 2:d6cde3037eac | 763 | |
mcm | 2:d6cde3037eac | 764 | /* Write the register */ |
mcm | 2:d6cde3037eac | 765 | cmd[0] = HDC2080_RH_THR_L; |
mcm | 2:d6cde3037eac | 766 | cmd[1] = myHumThresLow.hum_thres_low; |
mcm | 2:d6cde3037eac | 767 | aux = _i2c.write ( _HDC2080_Addr, &cmd[0], sizeof( cmd )/sizeof( cmd[0] ), false ); |
mcm | 2:d6cde3037eac | 768 | |
mcm | 2:d6cde3037eac | 769 | |
mcm | 2:d6cde3037eac | 770 | |
mcm | 2:d6cde3037eac | 771 | if ( aux == I2C_SUCCESS ) { |
mcm | 2:d6cde3037eac | 772 | return HDC2080_SUCCESS; |
mcm | 2:d6cde3037eac | 773 | } else { |
mcm | 2:d6cde3037eac | 774 | return HDC2080_FAILURE; |
mcm | 2:d6cde3037eac | 775 | } |
mcm | 2:d6cde3037eac | 776 | } |
mcm | 2:d6cde3037eac | 777 | |
mcm | 2:d6cde3037eac | 778 | |
mcm | 2:d6cde3037eac | 779 | |
mcm | 2:d6cde3037eac | 780 | /** |
mcm | 2:d6cde3037eac | 781 | * @brief HDC2080_GetHumidityThresLow ( HDC2080_data_t* ) |
mcm | 2:d6cde3037eac | 782 | * |
mcm | 2:d6cde3037eac | 783 | * @details It gets the humidity threshold low value ( raw value ). |
mcm | 2:d6cde3037eac | 784 | * |
mcm | 2:d6cde3037eac | 785 | * @param[in] N/A. |
mcm | 2:d6cde3037eac | 786 | * |
mcm | 2:d6cde3037eac | 787 | * @param[out] myHumThresLow: Humidity threshold low value ( raw value ). |
mcm | 2:d6cde3037eac | 788 | * |
mcm | 2:d6cde3037eac | 789 | * |
mcm | 2:d6cde3037eac | 790 | * @return Status of HDC2080_GetHumidityThresLow. |
mcm | 2:d6cde3037eac | 791 | * |
mcm | 2:d6cde3037eac | 792 | * |
mcm | 2:d6cde3037eac | 793 | * @author Manuel Caballero |
mcm | 2:d6cde3037eac | 794 | * @date 19/November/2019 |
mcm | 2:d6cde3037eac | 795 | * @version 19/November/2019 The ORIGIN |
mcm | 2:d6cde3037eac | 796 | * @pre N/A |
mcm | 2:d6cde3037eac | 797 | * @warning N/A. |
mcm | 2:d6cde3037eac | 798 | */ |
mcm | 2:d6cde3037eac | 799 | HDC2080::HDC2080_status_t HDC2080::HDC2080_GetHumidityThresLow ( HDC2080_data_t* myHumThresLow ) |
mcm | 2:d6cde3037eac | 800 | { |
mcm | 2:d6cde3037eac | 801 | char cmd = 0U; |
mcm | 2:d6cde3037eac | 802 | uint32_t aux; |
mcm | 2:d6cde3037eac | 803 | |
mcm | 2:d6cde3037eac | 804 | /* Read the register */ |
mcm | 2:d6cde3037eac | 805 | cmd = HDC2080_RH_THR_L; |
mcm | 2:d6cde3037eac | 806 | aux = _i2c.write ( _HDC2080_Addr, &cmd, 1U, true ); |
mcm | 2:d6cde3037eac | 807 | aux = _i2c.read ( _HDC2080_Addr, &cmd, 1U ); |
mcm | 2:d6cde3037eac | 808 | |
mcm | 2:d6cde3037eac | 809 | /* Parse the data */ |
mcm | 2:d6cde3037eac | 810 | myHumThresLow->hum_thres_low = cmd; |
mcm | 2:d6cde3037eac | 811 | |
mcm | 2:d6cde3037eac | 812 | |
mcm | 2:d6cde3037eac | 813 | |
mcm | 2:d6cde3037eac | 814 | if ( aux == I2C_SUCCESS ) { |
mcm | 2:d6cde3037eac | 815 | return HDC2080_SUCCESS; |
mcm | 2:d6cde3037eac | 816 | } else { |
mcm | 2:d6cde3037eac | 817 | return HDC2080_FAILURE; |
mcm | 2:d6cde3037eac | 818 | } |
mcm | 2:d6cde3037eac | 819 | } |
mcm | 2:d6cde3037eac | 820 | |
mcm | 2:d6cde3037eac | 821 | |
mcm | 2:d6cde3037eac | 822 | |
mcm | 2:d6cde3037eac | 823 | /** |
mcm | 2:d6cde3037eac | 824 | * @brief HDC2080_SetHumidityThresHigh ( HDC2080_data_t ) |
mcm | 2:d6cde3037eac | 825 | * |
mcm | 2:d6cde3037eac | 826 | * @details It sets the humidity threshold high value ( raw value ). |
mcm | 2:d6cde3037eac | 827 | * |
mcm | 2:d6cde3037eac | 828 | * @param[in] myHumThresHigh: Humidity threshold high value ( raw value ). |
mcm | 2:d6cde3037eac | 829 | * |
mcm | 2:d6cde3037eac | 830 | * @param[out] N/A. |
mcm | 2:d6cde3037eac | 831 | * |
mcm | 2:d6cde3037eac | 832 | * |
mcm | 2:d6cde3037eac | 833 | * @return Status of HDC2080_SetHumidityThresHigh. |
mcm | 2:d6cde3037eac | 834 | * |
mcm | 2:d6cde3037eac | 835 | * |
mcm | 2:d6cde3037eac | 836 | * @author Manuel Caballero |
mcm | 2:d6cde3037eac | 837 | * @date 19/November/2019 |
mcm | 2:d6cde3037eac | 838 | * @version 19/November/2019 The ORIGIN |
mcm | 2:d6cde3037eac | 839 | * @pre N/A |
mcm | 2:d6cde3037eac | 840 | * @warning N/A. |
mcm | 2:d6cde3037eac | 841 | */ |
mcm | 2:d6cde3037eac | 842 | HDC2080::HDC2080_status_t HDC2080::HDC2080_SetHumidityThresHigh ( HDC2080_data_t myHumThresHigh ) |
mcm | 2:d6cde3037eac | 843 | { |
mcm | 2:d6cde3037eac | 844 | char cmd[2] = { 0U }; |
mcm | 2:d6cde3037eac | 845 | uint32_t aux; |
mcm | 2:d6cde3037eac | 846 | |
mcm | 2:d6cde3037eac | 847 | /* Write the register */ |
mcm | 2:d6cde3037eac | 848 | cmd[0] = HDC2080_RH_THR_H; |
mcm | 2:d6cde3037eac | 849 | cmd[1] = myHumThresHigh.hum_thres_high; |
mcm | 2:d6cde3037eac | 850 | aux = _i2c.write ( _HDC2080_Addr, &cmd[0], sizeof( cmd )/sizeof( cmd[0] ), false ); |
mcm | 2:d6cde3037eac | 851 | |
mcm | 2:d6cde3037eac | 852 | |
mcm | 2:d6cde3037eac | 853 | |
mcm | 2:d6cde3037eac | 854 | if ( aux == I2C_SUCCESS ) { |
mcm | 2:d6cde3037eac | 855 | return HDC2080_SUCCESS; |
mcm | 2:d6cde3037eac | 856 | } else { |
mcm | 2:d6cde3037eac | 857 | return HDC2080_FAILURE; |
mcm | 2:d6cde3037eac | 858 | } |
mcm | 2:d6cde3037eac | 859 | } |
mcm | 2:d6cde3037eac | 860 | |
mcm | 2:d6cde3037eac | 861 | |
mcm | 2:d6cde3037eac | 862 | |
mcm | 2:d6cde3037eac | 863 | /** |
mcm | 2:d6cde3037eac | 864 | * @brief HDC2080_GetHumidityThresHigh ( HDC2080_data_t* ) |
mcm | 2:d6cde3037eac | 865 | * |
mcm | 2:d6cde3037eac | 866 | * @details It gets the humidity threshold high value ( raw value ). |
mcm | 2:d6cde3037eac | 867 | * |
mcm | 2:d6cde3037eac | 868 | * @param[in] N/A. |
mcm | 2:d6cde3037eac | 869 | * |
mcm | 2:d6cde3037eac | 870 | * @param[out] myHumThresHigh: Humidity threshold high value ( raw value ). |
mcm | 2:d6cde3037eac | 871 | * |
mcm | 2:d6cde3037eac | 872 | * |
mcm | 2:d6cde3037eac | 873 | * @return Status of HDC2080_GetHumidityThresHigh. |
mcm | 2:d6cde3037eac | 874 | * |
mcm | 2:d6cde3037eac | 875 | * |
mcm | 2:d6cde3037eac | 876 | * @author Manuel Caballero |
mcm | 2:d6cde3037eac | 877 | * @date 19/November/2019 |
mcm | 2:d6cde3037eac | 878 | * @version 19/November/2019 The ORIGIN |
mcm | 2:d6cde3037eac | 879 | * @pre N/A |
mcm | 2:d6cde3037eac | 880 | * @warning N/A. |
mcm | 2:d6cde3037eac | 881 | */ |
mcm | 2:d6cde3037eac | 882 | HDC2080::HDC2080_status_t HDC2080::HDC2080_GetHumidityThresHigh ( HDC2080_data_t* myHumThresHigh ) |
mcm | 2:d6cde3037eac | 883 | { |
mcm | 2:d6cde3037eac | 884 | char cmd = 0U; |
mcm | 2:d6cde3037eac | 885 | uint32_t aux; |
mcm | 2:d6cde3037eac | 886 | |
mcm | 2:d6cde3037eac | 887 | /* Read the register */ |
mcm | 2:d6cde3037eac | 888 | cmd = HDC2080_RH_THR_H; |
mcm | 2:d6cde3037eac | 889 | aux = _i2c.write ( _HDC2080_Addr, &cmd, 1U, true ); |
mcm | 2:d6cde3037eac | 890 | aux = _i2c.read ( _HDC2080_Addr, &cmd, 1U ); |
mcm | 2:d6cde3037eac | 891 | |
mcm | 2:d6cde3037eac | 892 | /* Parse the data */ |
mcm | 2:d6cde3037eac | 893 | myHumThresHigh->hum_thres_high = cmd; |
mcm | 2:d6cde3037eac | 894 | |
mcm | 2:d6cde3037eac | 895 | |
mcm | 2:d6cde3037eac | 896 | |
mcm | 2:d6cde3037eac | 897 | if ( aux == I2C_SUCCESS ) { |
mcm | 2:d6cde3037eac | 898 | return HDC2080_SUCCESS; |
mcm | 2:d6cde3037eac | 899 | } else { |
mcm | 2:d6cde3037eac | 900 | return HDC2080_FAILURE; |
mcm | 2:d6cde3037eac | 901 | } |
mcm | 2:d6cde3037eac | 902 | } |
mcm | 2:d6cde3037eac | 903 | |
mcm | 2:d6cde3037eac | 904 | |
mcm | 2:d6cde3037eac | 905 | |
mcm | 2:d6cde3037eac | 906 | /** |
mcm | 2:d6cde3037eac | 907 | * @brief HDC2080_SetSoftReset ( void ) |
mcm | 2:d6cde3037eac | 908 | * |
mcm | 2:d6cde3037eac | 909 | * @details It makes a soft reset. |
mcm | 2:d6cde3037eac | 910 | * |
mcm | 2:d6cde3037eac | 911 | * @param[in] N/A. |
mcm | 2:d6cde3037eac | 912 | * |
mcm | 2:d6cde3037eac | 913 | * @param[out] N/A. |
mcm | 2:d6cde3037eac | 914 | * |
mcm | 2:d6cde3037eac | 915 | * |
mcm | 2:d6cde3037eac | 916 | * @return Status of HDC2080_SetSoftReset. |
mcm | 2:d6cde3037eac | 917 | * |
mcm | 2:d6cde3037eac | 918 | * |
mcm | 2:d6cde3037eac | 919 | * @author Manuel Caballero |
mcm | 2:d6cde3037eac | 920 | * @date 19/November/2019 |
mcm | 2:d6cde3037eac | 921 | * @version 19/November/2019 The ORIGIN |
mcm | 2:d6cde3037eac | 922 | * @pre This bit is self-clear. |
mcm | 2:d6cde3037eac | 923 | * @warning N/A. |
mcm | 2:d6cde3037eac | 924 | */ |
mcm | 2:d6cde3037eac | 925 | HDC2080::HDC2080_status_t HDC2080::HDC2080_SetSoftReset ( void ) |
mcm | 2:d6cde3037eac | 926 | { |
mcm | 2:d6cde3037eac | 927 | char cmd[2] = { 0U }; |
mcm | 2:d6cde3037eac | 928 | uint32_t aux; |
mcm | 2:d6cde3037eac | 929 | |
mcm | 2:d6cde3037eac | 930 | /* Read the register */ |
mcm | 2:d6cde3037eac | 931 | cmd[0] = HDC2080_RESET_DRDY_INT_CONF; |
mcm | 2:d6cde3037eac | 932 | aux = _i2c.write ( _HDC2080_Addr, &cmd[0], 1U, true ); |
mcm | 2:d6cde3037eac | 933 | aux = _i2c.read ( _HDC2080_Addr, &cmd[1], 1U ); |
mcm | 2:d6cde3037eac | 934 | |
mcm | 2:d6cde3037eac | 935 | /* Update the register */ |
mcm | 2:d6cde3037eac | 936 | cmd[1] |= RESET_DRDY_INT_CONF_SOFT_RES_RESET; |
mcm | 2:d6cde3037eac | 937 | aux = _i2c.write ( _HDC2080_Addr, &cmd[0], sizeof( cmd )/sizeof( cmd[0] ), false ); |
mcm | 2:d6cde3037eac | 938 | |
mcm | 2:d6cde3037eac | 939 | |
mcm | 2:d6cde3037eac | 940 | |
mcm | 2:d6cde3037eac | 941 | if ( aux == I2C_SUCCESS ) { |
mcm | 2:d6cde3037eac | 942 | return HDC2080_SUCCESS; |
mcm | 2:d6cde3037eac | 943 | } else { |
mcm | 2:d6cde3037eac | 944 | return HDC2080_FAILURE; |
mcm | 2:d6cde3037eac | 945 | } |
mcm | 2:d6cde3037eac | 946 | } |
mcm | 2:d6cde3037eac | 947 | |
mcm | 2:d6cde3037eac | 948 | |
mcm | 2:d6cde3037eac | 949 | |
mcm | 2:d6cde3037eac | 950 | /** |
mcm | 2:d6cde3037eac | 951 | * @brief HDC2080_GetSoftReset ( HDC2080_data_t* ) |
mcm | 2:d6cde3037eac | 952 | * |
mcm | 2:d6cde3037eac | 953 | * @details It checks the soft reset flag. |
mcm | 2:d6cde3037eac | 954 | * |
mcm | 2:d6cde3037eac | 955 | * @param[in] N/A. |
mcm | 2:d6cde3037eac | 956 | * |
mcm | 2:d6cde3037eac | 957 | * @param[out] mySoftResetFlag: Soft reset flag. |
mcm | 2:d6cde3037eac | 958 | * |
mcm | 2:d6cde3037eac | 959 | * |
mcm | 2:d6cde3037eac | 960 | * @return Status of HDC2080_SetSoftReset. |
mcm | 2:d6cde3037eac | 961 | * |
mcm | 2:d6cde3037eac | 962 | * |
mcm | 2:d6cde3037eac | 963 | * @author Manuel Caballero |
mcm | 2:d6cde3037eac | 964 | * @date 19/November/2019 |
mcm | 2:d6cde3037eac | 965 | * @version 19/November/2019 The ORIGIN |
mcm | 2:d6cde3037eac | 966 | * @pre N/A. |
mcm | 2:d6cde3037eac | 967 | * @warning N/A. |
mcm | 2:d6cde3037eac | 968 | */ |
mcm | 2:d6cde3037eac | 969 | HDC2080::HDC2080_status_t HDC2080::HDC2080_GetSoftReset ( HDC2080_data_t* mySoftResetFlag ) |
mcm | 2:d6cde3037eac | 970 | { |
mcm | 2:d6cde3037eac | 971 | char cmd = 0U; |
mcm | 2:d6cde3037eac | 972 | uint32_t aux; |
mcm | 2:d6cde3037eac | 973 | |
mcm | 2:d6cde3037eac | 974 | /* Read the register */ |
mcm | 2:d6cde3037eac | 975 | cmd = HDC2080_RESET_DRDY_INT_CONF; |
mcm | 2:d6cde3037eac | 976 | aux = _i2c.write ( _HDC2080_Addr, &cmd, 1U, true ); |
mcm | 2:d6cde3037eac | 977 | aux = _i2c.read ( _HDC2080_Addr, &cmd, 1U ); |
mcm | 2:d6cde3037eac | 978 | |
mcm | 2:d6cde3037eac | 979 | /* Parse the data */ |
mcm | 2:d6cde3037eac | 980 | mySoftResetFlag->soft_res = (HDC2080_reset_drdy_int_conf_soft_res_t)( RESET_DRDY_INT_CONF_SOFT_RES_MASK & cmd ); |
mcm | 2:d6cde3037eac | 981 | |
mcm | 2:d6cde3037eac | 982 | |
mcm | 2:d6cde3037eac | 983 | |
mcm | 2:d6cde3037eac | 984 | if ( aux == I2C_SUCCESS ) { |
mcm | 2:d6cde3037eac | 985 | return HDC2080_SUCCESS; |
mcm | 2:d6cde3037eac | 986 | } else { |
mcm | 2:d6cde3037eac | 987 | return HDC2080_FAILURE; |
mcm | 2:d6cde3037eac | 988 | } |
mcm | 2:d6cde3037eac | 989 | } |
mcm | 2:d6cde3037eac | 990 | |
mcm | 2:d6cde3037eac | 991 | |
mcm | 2:d6cde3037eac | 992 | |
mcm | 2:d6cde3037eac | 993 | /** |
mcm | 2:d6cde3037eac | 994 | * @brief HDC2080_SetAutoMeasurementMode ( HDC2080_data_t ) |
mcm | 2:d6cde3037eac | 995 | * |
mcm | 2:d6cde3037eac | 996 | * @details It sets auto measurement mode ( AMM ). |
mcm | 2:d6cde3037eac | 997 | * |
mcm | 2:d6cde3037eac | 998 | * @param[in] myAMM: Auto measurement mode. |
mcm | 2:d6cde3037eac | 999 | * |
mcm | 2:d6cde3037eac | 1000 | * @param[out] N/A. |
mcm | 2:d6cde3037eac | 1001 | * |
mcm | 2:d6cde3037eac | 1002 | * |
mcm | 2:d6cde3037eac | 1003 | * @return Status of HDC2080_SetAutoMeasurementMode. |
mcm | 2:d6cde3037eac | 1004 | * |
mcm | 2:d6cde3037eac | 1005 | * |
mcm | 2:d6cde3037eac | 1006 | * @author Manuel Caballero |
mcm | 2:d6cde3037eac | 1007 | * @date 19/November/2019 |
mcm | 2:d6cde3037eac | 1008 | * @version 19/November/2019 The ORIGIN |
mcm | 2:d6cde3037eac | 1009 | * @pre N/A. |
mcm | 2:d6cde3037eac | 1010 | * @warning N/A. |
mcm | 2:d6cde3037eac | 1011 | */ |
mcm | 2:d6cde3037eac | 1012 | HDC2080::HDC2080_status_t HDC2080::HDC2080_SetAutoMeasurementMode ( HDC2080_data_t myAMM ) |
mcm | 2:d6cde3037eac | 1013 | { |
mcm | 2:d6cde3037eac | 1014 | char cmd[2] = { 0U }; |
mcm | 2:d6cde3037eac | 1015 | uint32_t aux; |
mcm | 2:d6cde3037eac | 1016 | |
mcm | 2:d6cde3037eac | 1017 | /* Read the register */ |
mcm | 2:d6cde3037eac | 1018 | cmd[0] = HDC2080_RESET_DRDY_INT_CONF; |
mcm | 2:d6cde3037eac | 1019 | aux = _i2c.write ( _HDC2080_Addr, &cmd[0], 1U, true ); |
mcm | 2:d6cde3037eac | 1020 | aux = _i2c.read ( _HDC2080_Addr, &cmd[1], 1U ); |
mcm | 2:d6cde3037eac | 1021 | |
mcm | 2:d6cde3037eac | 1022 | /* Update the register */ |
mcm | 2:d6cde3037eac | 1023 | cmd[1] &= ~( RESET_DRDY_INT_CONF_AMM_MASK ); |
mcm | 2:d6cde3037eac | 1024 | cmd[1] |= ( myAMM.amm ); |
mcm | 2:d6cde3037eac | 1025 | aux = _i2c.write ( _HDC2080_Addr, &cmd[0], sizeof( cmd )/sizeof( cmd[0] ), false ); |
mcm | 2:d6cde3037eac | 1026 | |
mcm | 2:d6cde3037eac | 1027 | |
mcm | 2:d6cde3037eac | 1028 | |
mcm | 2:d6cde3037eac | 1029 | if ( aux == I2C_SUCCESS ) { |
mcm | 2:d6cde3037eac | 1030 | return HDC2080_SUCCESS; |
mcm | 2:d6cde3037eac | 1031 | } else { |
mcm | 2:d6cde3037eac | 1032 | return HDC2080_FAILURE; |
mcm | 2:d6cde3037eac | 1033 | } |
mcm | 2:d6cde3037eac | 1034 | } |
mcm | 2:d6cde3037eac | 1035 | |
mcm | 2:d6cde3037eac | 1036 | |
mcm | 2:d6cde3037eac | 1037 | |
mcm | 2:d6cde3037eac | 1038 | /** |
mcm | 2:d6cde3037eac | 1039 | * @brief HDC2080_GetAutoMeasurementMode ( HDC2080_data_t* ) |
mcm | 2:d6cde3037eac | 1040 | * |
mcm | 2:d6cde3037eac | 1041 | * @details It gets auto measurement mode ( AMM ). |
mcm | 2:d6cde3037eac | 1042 | * |
mcm | 2:d6cde3037eac | 1043 | * @param[in] N/A. |
mcm | 2:d6cde3037eac | 1044 | * |
mcm | 2:d6cde3037eac | 1045 | * @param[out] myAMM: Auto measurement mode. |
mcm | 2:d6cde3037eac | 1046 | * |
mcm | 2:d6cde3037eac | 1047 | * |
mcm | 2:d6cde3037eac | 1048 | * @return Status of HDC2080_GetAutoMeasurementMode. |
mcm | 2:d6cde3037eac | 1049 | * |
mcm | 2:d6cde3037eac | 1050 | * |
mcm | 2:d6cde3037eac | 1051 | * @author Manuel Caballero |
mcm | 2:d6cde3037eac | 1052 | * @date 19/November/2019 |
mcm | 2:d6cde3037eac | 1053 | * @version 19/November/2019 The ORIGIN |
mcm | 2:d6cde3037eac | 1054 | * @pre N/A. |
mcm | 2:d6cde3037eac | 1055 | * @warning N/A. |
mcm | 2:d6cde3037eac | 1056 | */ |
mcm | 2:d6cde3037eac | 1057 | HDC2080::HDC2080_status_t HDC2080::HDC2080_GetAutoMeasurementMode ( HDC2080_data_t* myAMM ) |
mcm | 2:d6cde3037eac | 1058 | { |
mcm | 2:d6cde3037eac | 1059 | char cmd = 0U; |
mcm | 2:d6cde3037eac | 1060 | uint32_t aux; |
mcm | 2:d6cde3037eac | 1061 | |
mcm | 2:d6cde3037eac | 1062 | /* Read the register */ |
mcm | 2:d6cde3037eac | 1063 | cmd = HDC2080_RESET_DRDY_INT_CONF; |
mcm | 2:d6cde3037eac | 1064 | aux = _i2c.write ( _HDC2080_Addr, &cmd, 1U, true ); |
mcm | 2:d6cde3037eac | 1065 | aux = _i2c.read ( _HDC2080_Addr, &cmd, 1U ); |
mcm | 2:d6cde3037eac | 1066 | |
mcm | 2:d6cde3037eac | 1067 | /* Parse the data */ |
mcm | 2:d6cde3037eac | 1068 | myAMM->amm = (HDC2080_reset_drdy_int_conf_amm_t)( RESET_DRDY_INT_CONF_AMM_MASK & cmd ); |
mcm | 2:d6cde3037eac | 1069 | |
mcm | 2:d6cde3037eac | 1070 | |
mcm | 2:d6cde3037eac | 1071 | |
mcm | 2:d6cde3037eac | 1072 | if ( aux == I2C_SUCCESS ) { |
mcm | 2:d6cde3037eac | 1073 | return HDC2080_SUCCESS; |
mcm | 2:d6cde3037eac | 1074 | } else { |
mcm | 2:d6cde3037eac | 1075 | return HDC2080_FAILURE; |
mcm | 2:d6cde3037eac | 1076 | } |
mcm | 2:d6cde3037eac | 1077 | } |
mcm | 2:d6cde3037eac | 1078 | |
mcm | 2:d6cde3037eac | 1079 | |
mcm | 2:d6cde3037eac | 1080 | |
mcm | 2:d6cde3037eac | 1081 | /** |
mcm | 2:d6cde3037eac | 1082 | * @brief HDC2080_SetHeaterMode ( HDC2080_data_t ) |
mcm | 2:d6cde3037eac | 1083 | * |
mcm | 2:d6cde3037eac | 1084 | * @details It sets the heater mode. |
mcm | 2:d6cde3037eac | 1085 | * |
mcm | 2:d6cde3037eac | 1086 | * @param[in] myHeatEn: Heater mode: On/Off. |
mcm | 2:d6cde3037eac | 1087 | * |
mcm | 2:d6cde3037eac | 1088 | * @param[out] N/A. |
mcm | 2:d6cde3037eac | 1089 | * |
mcm | 2:d6cde3037eac | 1090 | * |
mcm | 2:d6cde3037eac | 1091 | * @return Status of HDC2080_SetHeaterMode. |
mcm | 2:d6cde3037eac | 1092 | * |
mcm | 2:d6cde3037eac | 1093 | * |
mcm | 2:d6cde3037eac | 1094 | * @author Manuel Caballero |
mcm | 2:d6cde3037eac | 1095 | * @date 19/November/2019 |
mcm | 2:d6cde3037eac | 1096 | * @version 19/November/2019 The ORIGIN |
mcm | 2:d6cde3037eac | 1097 | * @pre N/A. |
mcm | 2:d6cde3037eac | 1098 | * @warning N/A. |
mcm | 2:d6cde3037eac | 1099 | */ |
mcm | 2:d6cde3037eac | 1100 | HDC2080::HDC2080_status_t HDC2080::HDC2080_SetHeaterMode ( HDC2080_data_t myHeatEn ) |
mcm | 2:d6cde3037eac | 1101 | { |
mcm | 2:d6cde3037eac | 1102 | char cmd[2] = { 0U }; |
mcm | 2:d6cde3037eac | 1103 | uint32_t aux; |
mcm | 2:d6cde3037eac | 1104 | |
mcm | 2:d6cde3037eac | 1105 | /* Read the register */ |
mcm | 2:d6cde3037eac | 1106 | cmd[0] = HDC2080_RESET_DRDY_INT_CONF; |
mcm | 2:d6cde3037eac | 1107 | aux = _i2c.write ( _HDC2080_Addr, &cmd[0], 1U, true ); |
mcm | 2:d6cde3037eac | 1108 | aux = _i2c.read ( _HDC2080_Addr, &cmd[1], 1U ); |
mcm | 2:d6cde3037eac | 1109 | |
mcm | 2:d6cde3037eac | 1110 | /* Update the register */ |
mcm | 2:d6cde3037eac | 1111 | cmd[1] &= ~( RESET_DRDY_INT_CONF_HEAT_EN_MASK ); |
mcm | 2:d6cde3037eac | 1112 | cmd[1] |= ( myHeatEn.heater_en ); |
mcm | 2:d6cde3037eac | 1113 | aux = _i2c.write ( _HDC2080_Addr, &cmd[0], sizeof( cmd )/sizeof( cmd[0] ), false ); |
mcm | 2:d6cde3037eac | 1114 | |
mcm | 2:d6cde3037eac | 1115 | |
mcm | 2:d6cde3037eac | 1116 | |
mcm | 2:d6cde3037eac | 1117 | if ( aux == I2C_SUCCESS ) { |
mcm | 2:d6cde3037eac | 1118 | return HDC2080_SUCCESS; |
mcm | 2:d6cde3037eac | 1119 | } else { |
mcm | 2:d6cde3037eac | 1120 | return HDC2080_FAILURE; |
mcm | 2:d6cde3037eac | 1121 | } |
mcm | 2:d6cde3037eac | 1122 | } |
mcm | 2:d6cde3037eac | 1123 | |
mcm | 2:d6cde3037eac | 1124 | |
mcm | 2:d6cde3037eac | 1125 | |
mcm | 2:d6cde3037eac | 1126 | /** |
mcm | 2:d6cde3037eac | 1127 | * @brief HDC2080_GetHeaterMode ( HDC2080_data_t* ) |
mcm | 2:d6cde3037eac | 1128 | * |
mcm | 2:d6cde3037eac | 1129 | * @details It gets the heater mode. |
mcm | 2:d6cde3037eac | 1130 | * |
mcm | 2:d6cde3037eac | 1131 | * @param[in] N/A. |
mcm | 2:d6cde3037eac | 1132 | * |
mcm | 2:d6cde3037eac | 1133 | * @param[out] myHeatEn: Heater mode: On/Off.. |
mcm | 2:d6cde3037eac | 1134 | * |
mcm | 2:d6cde3037eac | 1135 | * |
mcm | 2:d6cde3037eac | 1136 | * @return Status of HDC2080_GetHeaterMode. |
mcm | 2:d6cde3037eac | 1137 | * |
mcm | 2:d6cde3037eac | 1138 | * |
mcm | 2:d6cde3037eac | 1139 | * @author Manuel Caballero |
mcm | 2:d6cde3037eac | 1140 | * @date 19/November/2019 |
mcm | 2:d6cde3037eac | 1141 | * @version 19/November/2019 The ORIGIN |
mcm | 2:d6cde3037eac | 1142 | * @pre N/A. |
mcm | 2:d6cde3037eac | 1143 | * @warning N/A. |
mcm | 2:d6cde3037eac | 1144 | */ |
mcm | 2:d6cde3037eac | 1145 | HDC2080::HDC2080_status_t HDC2080::HDC2080_GetHeaterMode ( HDC2080_data_t* myHeatEn ) |
mcm | 2:d6cde3037eac | 1146 | { |
mcm | 2:d6cde3037eac | 1147 | char cmd = 0U; |
mcm | 2:d6cde3037eac | 1148 | uint32_t aux; |
mcm | 2:d6cde3037eac | 1149 | |
mcm | 2:d6cde3037eac | 1150 | /* Read the register */ |
mcm | 2:d6cde3037eac | 1151 | cmd = HDC2080_RESET_DRDY_INT_CONF; |
mcm | 2:d6cde3037eac | 1152 | aux = _i2c.write ( _HDC2080_Addr, &cmd, 1U, true ); |
mcm | 2:d6cde3037eac | 1153 | aux = _i2c.read ( _HDC2080_Addr, &cmd, 1U ); |
mcm | 2:d6cde3037eac | 1154 | |
mcm | 2:d6cde3037eac | 1155 | /* Parse the data */ |
mcm | 2:d6cde3037eac | 1156 | myHeatEn->heater_en = (HDC2080_reset_drdy_int_conf_heat_en_t)( RESET_DRDY_INT_CONF_HEAT_EN_MASK & cmd ); |
mcm | 2:d6cde3037eac | 1157 | |
mcm | 2:d6cde3037eac | 1158 | |
mcm | 2:d6cde3037eac | 1159 | |
mcm | 2:d6cde3037eac | 1160 | if ( aux == I2C_SUCCESS ) { |
mcm | 2:d6cde3037eac | 1161 | return HDC2080_SUCCESS; |
mcm | 2:d6cde3037eac | 1162 | } else { |
mcm | 2:d6cde3037eac | 1163 | return HDC2080_FAILURE; |
mcm | 2:d6cde3037eac | 1164 | } |
mcm | 2:d6cde3037eac | 1165 | } |
mcm | 2:d6cde3037eac | 1166 | |
mcm | 2:d6cde3037eac | 1167 | |
mcm | 2:d6cde3037eac | 1168 | |
mcm | 2:d6cde3037eac | 1169 | /** |
mcm | 2:d6cde3037eac | 1170 | * @brief HDC2080_SetPinConfifuration ( HDC2080_data_t ) |
mcm | 2:d6cde3037eac | 1171 | * |
mcm | 2:d6cde3037eac | 1172 | * @details It sets the DRDY/INT_EN pin configuration. |
mcm | 2:d6cde3037eac | 1173 | * |
mcm | 2:d6cde3037eac | 1174 | * @param[in] myPinConfiguration: DRDY/INT_EN pin configuration. |
mcm | 2:d6cde3037eac | 1175 | * |
mcm | 2:d6cde3037eac | 1176 | * @param[out] N/A. |
mcm | 2:d6cde3037eac | 1177 | * |
mcm | 2:d6cde3037eac | 1178 | * |
mcm | 2:d6cde3037eac | 1179 | * @return Status of HDC2080_SetPinConfifuration. |
mcm | 2:d6cde3037eac | 1180 | * |
mcm | 2:d6cde3037eac | 1181 | * |
mcm | 2:d6cde3037eac | 1182 | * @author Manuel Caballero |
mcm | 2:d6cde3037eac | 1183 | * @date 19/November/2019 |
mcm | 2:d6cde3037eac | 1184 | * @version 19/November/2019 The ORIGIN |
mcm | 2:d6cde3037eac | 1185 | * @pre N/A. |
mcm | 2:d6cde3037eac | 1186 | * @warning N/A. |
mcm | 2:d6cde3037eac | 1187 | */ |
mcm | 2:d6cde3037eac | 1188 | HDC2080::HDC2080_status_t HDC2080::HDC2080_SetPinConfifuration ( HDC2080_data_t myPinConfiguration ) |
mcm | 2:d6cde3037eac | 1189 | { |
mcm | 2:d6cde3037eac | 1190 | char cmd[2] = { 0U }; |
mcm | 2:d6cde3037eac | 1191 | uint32_t aux; |
mcm | 2:d6cde3037eac | 1192 | |
mcm | 2:d6cde3037eac | 1193 | /* Read the register */ |
mcm | 2:d6cde3037eac | 1194 | cmd[0] = HDC2080_RESET_DRDY_INT_CONF; |
mcm | 2:d6cde3037eac | 1195 | aux = _i2c.write ( _HDC2080_Addr, &cmd[0], 1U, true ); |
mcm | 2:d6cde3037eac | 1196 | aux = _i2c.read ( _HDC2080_Addr, &cmd[1], 1U ); |
mcm | 2:d6cde3037eac | 1197 | |
mcm | 2:d6cde3037eac | 1198 | /* Update the register */ |
mcm | 2:d6cde3037eac | 1199 | cmd[1] &= ~( RESET_DRDY_INT_CONF_DRDY_INT_EN_MASK ); |
mcm | 2:d6cde3037eac | 1200 | cmd[1] |= ( myPinConfiguration.drdy_intEn ); |
mcm | 2:d6cde3037eac | 1201 | aux = _i2c.write ( _HDC2080_Addr, &cmd[0], sizeof( cmd )/sizeof( cmd[0] ), false ); |
mcm | 2:d6cde3037eac | 1202 | |
mcm | 2:d6cde3037eac | 1203 | |
mcm | 2:d6cde3037eac | 1204 | |
mcm | 2:d6cde3037eac | 1205 | if ( aux == I2C_SUCCESS ) { |
mcm | 2:d6cde3037eac | 1206 | return HDC2080_SUCCESS; |
mcm | 2:d6cde3037eac | 1207 | } else { |
mcm | 2:d6cde3037eac | 1208 | return HDC2080_FAILURE; |
mcm | 2:d6cde3037eac | 1209 | } |
mcm | 2:d6cde3037eac | 1210 | } |
mcm | 2:d6cde3037eac | 1211 | |
mcm | 2:d6cde3037eac | 1212 | |
mcm | 2:d6cde3037eac | 1213 | |
mcm | 2:d6cde3037eac | 1214 | /** |
mcm | 2:d6cde3037eac | 1215 | * @brief HDC2080_GetPinConfiguration ( HDC2080_data_t* ) |
mcm | 2:d6cde3037eac | 1216 | * |
mcm | 2:d6cde3037eac | 1217 | * @details It gets the DRDY/INT_EN pin configuration. |
mcm | 2:d6cde3037eac | 1218 | * |
mcm | 2:d6cde3037eac | 1219 | * @param[in] N/A. |
mcm | 2:d6cde3037eac | 1220 | * |
mcm | 2:d6cde3037eac | 1221 | * @param[out] myPinConfiguration: DRDY/INT_EN pin configuration.. |
mcm | 2:d6cde3037eac | 1222 | * |
mcm | 2:d6cde3037eac | 1223 | * |
mcm | 2:d6cde3037eac | 1224 | * @return Status of HDC2080_GetPinConfiguration. |
mcm | 2:d6cde3037eac | 1225 | * |
mcm | 2:d6cde3037eac | 1226 | * |
mcm | 2:d6cde3037eac | 1227 | * @author Manuel Caballero |
mcm | 2:d6cde3037eac | 1228 | * @date 19/November/2019 |
mcm | 2:d6cde3037eac | 1229 | * @version 19/November/2019 The ORIGIN |
mcm | 2:d6cde3037eac | 1230 | * @pre N/A. |
mcm | 2:d6cde3037eac | 1231 | * @warning N/A. |
mcm | 2:d6cde3037eac | 1232 | */ |
mcm | 2:d6cde3037eac | 1233 | HDC2080::HDC2080_status_t HDC2080::HDC2080_GetPinConfiguration ( HDC2080_data_t* myPinConfiguration ) |
mcm | 2:d6cde3037eac | 1234 | { |
mcm | 2:d6cde3037eac | 1235 | char cmd = 0U; |
mcm | 2:d6cde3037eac | 1236 | uint32_t aux; |
mcm | 2:d6cde3037eac | 1237 | |
mcm | 2:d6cde3037eac | 1238 | /* Read the register */ |
mcm | 2:d6cde3037eac | 1239 | cmd = HDC2080_RESET_DRDY_INT_CONF; |
mcm | 2:d6cde3037eac | 1240 | aux = _i2c.write ( _HDC2080_Addr, &cmd, 1U, true ); |
mcm | 2:d6cde3037eac | 1241 | aux = _i2c.read ( _HDC2080_Addr, &cmd, 1U ); |
mcm | 2:d6cde3037eac | 1242 | |
mcm | 2:d6cde3037eac | 1243 | /* Update the register */ |
mcm | 2:d6cde3037eac | 1244 | myPinConfiguration->drdy_intEn = (HDC2080_reset_drdy_int_conf_drdr_int_en_t)( RESET_DRDY_INT_CONF_DRDY_INT_EN_MASK & cmd ); |
mcm | 2:d6cde3037eac | 1245 | |
mcm | 2:d6cde3037eac | 1246 | |
mcm | 2:d6cde3037eac | 1247 | |
mcm | 2:d6cde3037eac | 1248 | if ( aux == I2C_SUCCESS ) { |
mcm | 2:d6cde3037eac | 1249 | return HDC2080_SUCCESS; |
mcm | 2:d6cde3037eac | 1250 | } else { |
mcm | 2:d6cde3037eac | 1251 | return HDC2080_FAILURE; |
mcm | 2:d6cde3037eac | 1252 | } |
mcm | 2:d6cde3037eac | 1253 | } |
mcm | 2:d6cde3037eac | 1254 | |
mcm | 2:d6cde3037eac | 1255 | |
mcm | 2:d6cde3037eac | 1256 | |
mcm | 2:d6cde3037eac | 1257 | /** |
mcm | 2:d6cde3037eac | 1258 | * @brief HDC2080_SetInterruptPolarity ( HDC2080_data_t ) |
mcm | 2:d6cde3037eac | 1259 | * |
mcm | 2:d6cde3037eac | 1260 | * @details It sets the interrupt polarity |
mcm | 2:d6cde3037eac | 1261 | * |
mcm | 2:d6cde3037eac | 1262 | * @param[in] myIntPol: Interrupt polarity: Active Low/High. |
mcm | 2:d6cde3037eac | 1263 | * |
mcm | 2:d6cde3037eac | 1264 | * @param[out] N/A. |
mcm | 2:d6cde3037eac | 1265 | * |
mcm | 2:d6cde3037eac | 1266 | * |
mcm | 2:d6cde3037eac | 1267 | * @return Status of HDC2080_SetInterruptPolarity. |
mcm | 2:d6cde3037eac | 1268 | * |
mcm | 2:d6cde3037eac | 1269 | * |
mcm | 2:d6cde3037eac | 1270 | * @author Manuel Caballero |
mcm | 2:d6cde3037eac | 1271 | * @date 19/November/2019 |
mcm | 2:d6cde3037eac | 1272 | * @version 19/November/2019 The ORIGIN |
mcm | 2:d6cde3037eac | 1273 | * @pre N/A. |
mcm | 2:d6cde3037eac | 1274 | * @warning N/A. |
mcm | 2:d6cde3037eac | 1275 | */ |
mcm | 2:d6cde3037eac | 1276 | HDC2080::HDC2080_status_t HDC2080::HDC2080_SetInterruptPolarity ( HDC2080_data_t myIntPol ) |
mcm | 2:d6cde3037eac | 1277 | { |
mcm | 2:d6cde3037eac | 1278 | char cmd[2] = { 0U }; |
mcm | 2:d6cde3037eac | 1279 | uint32_t aux; |
mcm | 2:d6cde3037eac | 1280 | |
mcm | 2:d6cde3037eac | 1281 | /* Read the register */ |
mcm | 2:d6cde3037eac | 1282 | cmd[0] = HDC2080_RESET_DRDY_INT_CONF; |
mcm | 2:d6cde3037eac | 1283 | aux = _i2c.write ( _HDC2080_Addr, &cmd[0], 1U, true ); |
mcm | 2:d6cde3037eac | 1284 | aux = _i2c.read ( _HDC2080_Addr, &cmd[1], 1U ); |
mcm | 2:d6cde3037eac | 1285 | |
mcm | 2:d6cde3037eac | 1286 | /* Update the register */ |
mcm | 2:d6cde3037eac | 1287 | cmd[1] &= ~( RESET_DRDY_INT_CONF_INT_POL_MASK ); |
mcm | 2:d6cde3037eac | 1288 | cmd[1] |= ( myIntPol.int_pol ); |
mcm | 2:d6cde3037eac | 1289 | aux = _i2c.write ( _HDC2080_Addr, &cmd[0], sizeof( cmd )/sizeof( cmd[0] ), false ); |
mcm | 2:d6cde3037eac | 1290 | |
mcm | 2:d6cde3037eac | 1291 | |
mcm | 2:d6cde3037eac | 1292 | |
mcm | 2:d6cde3037eac | 1293 | if ( aux == I2C_SUCCESS ) { |
mcm | 2:d6cde3037eac | 1294 | return HDC2080_SUCCESS; |
mcm | 2:d6cde3037eac | 1295 | } else { |
mcm | 2:d6cde3037eac | 1296 | return HDC2080_FAILURE; |
mcm | 2:d6cde3037eac | 1297 | } |
mcm | 2:d6cde3037eac | 1298 | } |
mcm | 2:d6cde3037eac | 1299 | |
mcm | 2:d6cde3037eac | 1300 | |
mcm | 2:d6cde3037eac | 1301 | |
mcm | 2:d6cde3037eac | 1302 | /** |
mcm | 2:d6cde3037eac | 1303 | * @brief HDC2080_GetInterruptPolarity ( HDC2080_data_t* ) |
mcm | 2:d6cde3037eac | 1304 | * |
mcm | 2:d6cde3037eac | 1305 | * @details It gets the interrupt polarity |
mcm | 2:d6cde3037eac | 1306 | * |
mcm | 2:d6cde3037eac | 1307 | * @param[in] N/A. |
mcm | 2:d6cde3037eac | 1308 | * |
mcm | 2:d6cde3037eac | 1309 | * @param[out] myIntPol: Interrupt polarity: Active Low/High. |
mcm | 2:d6cde3037eac | 1310 | * |
mcm | 2:d6cde3037eac | 1311 | * |
mcm | 2:d6cde3037eac | 1312 | * @return Status of HDC2080_GetInterruptPolarity. |
mcm | 2:d6cde3037eac | 1313 | * |
mcm | 2:d6cde3037eac | 1314 | * |
mcm | 2:d6cde3037eac | 1315 | * @author Manuel Caballero |
mcm | 2:d6cde3037eac | 1316 | * @date 19/November/2019 |
mcm | 2:d6cde3037eac | 1317 | * @version 19/November/2019 The ORIGIN |
mcm | 2:d6cde3037eac | 1318 | * @pre N/A. |
mcm | 2:d6cde3037eac | 1319 | * @warning N/A. |
mcm | 2:d6cde3037eac | 1320 | */ |
mcm | 2:d6cde3037eac | 1321 | HDC2080::HDC2080_status_t HDC2080::HDC2080_GetInterruptPolarity ( HDC2080_data_t* myIntPol ) |
mcm | 2:d6cde3037eac | 1322 | { |
mcm | 2:d6cde3037eac | 1323 | char cmd = 0U; |
mcm | 2:d6cde3037eac | 1324 | uint32_t aux; |
mcm | 2:d6cde3037eac | 1325 | |
mcm | 2:d6cde3037eac | 1326 | /* Read the register */ |
mcm | 2:d6cde3037eac | 1327 | cmd = HDC2080_RESET_DRDY_INT_CONF; |
mcm | 2:d6cde3037eac | 1328 | aux = _i2c.write ( _HDC2080_Addr, &cmd, 1U, true ); |
mcm | 2:d6cde3037eac | 1329 | aux = _i2c.read ( _HDC2080_Addr, &cmd, 1U ); |
mcm | 2:d6cde3037eac | 1330 | |
mcm | 2:d6cde3037eac | 1331 | /* Parse the data */ |
mcm | 2:d6cde3037eac | 1332 | myIntPol->int_pol = (HDC2080_reset_drdy_int_conf_int_pol_t)( RESET_DRDY_INT_CONF_INT_POL_MASK & cmd ); |
mcm | 2:d6cde3037eac | 1333 | |
mcm | 2:d6cde3037eac | 1334 | |
mcm | 2:d6cde3037eac | 1335 | |
mcm | 2:d6cde3037eac | 1336 | if ( aux == I2C_SUCCESS ) { |
mcm | 2:d6cde3037eac | 1337 | return HDC2080_SUCCESS; |
mcm | 2:d6cde3037eac | 1338 | } else { |
mcm | 2:d6cde3037eac | 1339 | return HDC2080_FAILURE; |
mcm | 2:d6cde3037eac | 1340 | } |
mcm | 2:d6cde3037eac | 1341 | } |
mcm | 2:d6cde3037eac | 1342 | |
mcm | 2:d6cde3037eac | 1343 | |
mcm | 2:d6cde3037eac | 1344 | |
mcm | 2:d6cde3037eac | 1345 | /** |
mcm | 2:d6cde3037eac | 1346 | * @brief HDC2080_SetInterruptMode ( HDC2080_data_t ) |
mcm | 2:d6cde3037eac | 1347 | * |
mcm | 2:d6cde3037eac | 1348 | * @details It sets the interrupt mode |
mcm | 2:d6cde3037eac | 1349 | * |
mcm | 2:d6cde3037eac | 1350 | * @param[in] myIntMode: Interrupt mode: Level sensitive/Comparator mode. |
mcm | 2:d6cde3037eac | 1351 | * |
mcm | 2:d6cde3037eac | 1352 | * @param[out] N/A. |
mcm | 2:d6cde3037eac | 1353 | * |
mcm | 2:d6cde3037eac | 1354 | * |
mcm | 2:d6cde3037eac | 1355 | * @return Status of HDC2080_SetInterruptMode. |
mcm | 2:d6cde3037eac | 1356 | * |
mcm | 2:d6cde3037eac | 1357 | * |
mcm | 2:d6cde3037eac | 1358 | * @author Manuel Caballero |
mcm | 2:d6cde3037eac | 1359 | * @date 19/November/2019 |
mcm | 2:d6cde3037eac | 1360 | * @version 19/November/2019 The ORIGIN |
mcm | 2:d6cde3037eac | 1361 | * @pre N/A. |
mcm | 2:d6cde3037eac | 1362 | * @warning N/A. |
mcm | 2:d6cde3037eac | 1363 | */ |
mcm | 2:d6cde3037eac | 1364 | HDC2080::HDC2080_status_t HDC2080::HDC2080_SetInterruptMode ( HDC2080_data_t myIntMode ) |
mcm | 2:d6cde3037eac | 1365 | { |
mcm | 2:d6cde3037eac | 1366 | char cmd[2] = { 0U }; |
mcm | 2:d6cde3037eac | 1367 | uint32_t aux; |
mcm | 2:d6cde3037eac | 1368 | |
mcm | 2:d6cde3037eac | 1369 | /* Read the register */ |
mcm | 2:d6cde3037eac | 1370 | cmd[0] = HDC2080_RESET_DRDY_INT_CONF; |
mcm | 2:d6cde3037eac | 1371 | aux = _i2c.write ( _HDC2080_Addr, &cmd[0], 1U, true ); |
mcm | 2:d6cde3037eac | 1372 | aux = _i2c.read ( _HDC2080_Addr, &cmd[1], 1U ); |
mcm | 2:d6cde3037eac | 1373 | |
mcm | 2:d6cde3037eac | 1374 | /* Update the register */ |
mcm | 2:d6cde3037eac | 1375 | cmd[1] &= ~( RESET_DRDY_INT_CONF_INT_MODE_MASK ); |
mcm | 2:d6cde3037eac | 1376 | cmd[1] |= ( myIntMode.int_mode ); |
mcm | 2:d6cde3037eac | 1377 | aux = _i2c.write ( _HDC2080_Addr, &cmd[0], sizeof( cmd )/sizeof( cmd[0] ), false ); |
mcm | 2:d6cde3037eac | 1378 | |
mcm | 2:d6cde3037eac | 1379 | |
mcm | 2:d6cde3037eac | 1380 | |
mcm | 2:d6cde3037eac | 1381 | if ( aux == I2C_SUCCESS ) { |
mcm | 2:d6cde3037eac | 1382 | return HDC2080_SUCCESS; |
mcm | 2:d6cde3037eac | 1383 | } else { |
mcm | 2:d6cde3037eac | 1384 | return HDC2080_FAILURE; |
mcm | 2:d6cde3037eac | 1385 | } |
mcm | 2:d6cde3037eac | 1386 | } |
mcm | 2:d6cde3037eac | 1387 | |
mcm | 2:d6cde3037eac | 1388 | |
mcm | 2:d6cde3037eac | 1389 | |
mcm | 2:d6cde3037eac | 1390 | /** |
mcm | 2:d6cde3037eac | 1391 | * @brief HDC2080_GetInterruptMode ( HDC2080_data_t* ) |
mcm | 2:d6cde3037eac | 1392 | * |
mcm | 2:d6cde3037eac | 1393 | * @details It gets the interrupt mode |
mcm | 2:d6cde3037eac | 1394 | * |
mcm | 2:d6cde3037eac | 1395 | * @param[in] N/A. |
mcm | 2:d6cde3037eac | 1396 | * |
mcm | 2:d6cde3037eac | 1397 | * @param[out] myIntMode: Interrupt mode: Level sensitive/Comparator mode. |
mcm | 2:d6cde3037eac | 1398 | * |
mcm | 2:d6cde3037eac | 1399 | * |
mcm | 2:d6cde3037eac | 1400 | * @return Status of HDC2080_GetInterruptMode. |
mcm | 2:d6cde3037eac | 1401 | * |
mcm | 2:d6cde3037eac | 1402 | * |
mcm | 2:d6cde3037eac | 1403 | * @author Manuel Caballero |
mcm | 2:d6cde3037eac | 1404 | * @date 19/November/2019 |
mcm | 2:d6cde3037eac | 1405 | * @version 19/November/2019 The ORIGIN |
mcm | 2:d6cde3037eac | 1406 | * @pre N/A. |
mcm | 2:d6cde3037eac | 1407 | * @warning N/A. |
mcm | 2:d6cde3037eac | 1408 | */ |
mcm | 2:d6cde3037eac | 1409 | HDC2080::HDC2080_status_t HDC2080::HDC2080_GetInterruptMode ( HDC2080_data_t* myIntMode ) |
mcm | 2:d6cde3037eac | 1410 | { |
mcm | 2:d6cde3037eac | 1411 | char cmd = 0U; |
mcm | 2:d6cde3037eac | 1412 | uint32_t aux; |
mcm | 2:d6cde3037eac | 1413 | |
mcm | 2:d6cde3037eac | 1414 | /* Read the register */ |
mcm | 2:d6cde3037eac | 1415 | cmd = HDC2080_RESET_DRDY_INT_CONF; |
mcm | 2:d6cde3037eac | 1416 | aux = _i2c.write ( _HDC2080_Addr, &cmd, 1U, true ); |
mcm | 2:d6cde3037eac | 1417 | aux = _i2c.read ( _HDC2080_Addr, &cmd, 1U ); |
mcm | 2:d6cde3037eac | 1418 | |
mcm | 2:d6cde3037eac | 1419 | /* Parse the data */ |
mcm | 2:d6cde3037eac | 1420 | myIntMode->int_mode = (HDC2080_reset_drdy_int_conf_int_mode_t)( RESET_DRDY_INT_CONF_INT_MODE_MASK & cmd ); |
mcm | 2:d6cde3037eac | 1421 | |
mcm | 2:d6cde3037eac | 1422 | |
mcm | 2:d6cde3037eac | 1423 | |
mcm | 2:d6cde3037eac | 1424 | if ( aux == I2C_SUCCESS ) { |
mcm | 2:d6cde3037eac | 1425 | return HDC2080_SUCCESS; |
mcm | 2:d6cde3037eac | 1426 | } else { |
mcm | 2:d6cde3037eac | 1427 | return HDC2080_FAILURE; |
mcm | 2:d6cde3037eac | 1428 | } |
mcm | 2:d6cde3037eac | 1429 | } |
mcm | 2:d6cde3037eac | 1430 | |
mcm | 2:d6cde3037eac | 1431 | |
mcm | 2:d6cde3037eac | 1432 | |
mcm | 2:d6cde3037eac | 1433 | /** |
mcm | 2:d6cde3037eac | 1434 | * @brief HDC2080_SetMeasurementConf ( HDC2080_data_t ) |
mcm | 2:d6cde3037eac | 1435 | * |
mcm | 2:d6cde3037eac | 1436 | * @details It sets the measurement configuration. |
mcm | 2:d6cde3037eac | 1437 | * |
mcm | 2:d6cde3037eac | 1438 | * @param[in] myMeasConf: Temperature resolution, Humidity resolution and Measurement configuration. |
mcm | 2:d6cde3037eac | 1439 | * |
mcm | 2:d6cde3037eac | 1440 | * @param[out] N/A. |
mcm | 2:d6cde3037eac | 1441 | * |
mcm | 2:d6cde3037eac | 1442 | * |
mcm | 2:d6cde3037eac | 1443 | * @return Status of HDC2080_SetMeasurementConf. |
mcm | 2:d6cde3037eac | 1444 | * |
mcm | 2:d6cde3037eac | 1445 | * |
mcm | 2:d6cde3037eac | 1446 | * @author Manuel Caballero |
mcm | 2:d6cde3037eac | 1447 | * @date 19/November/2019 |
mcm | 2:d6cde3037eac | 1448 | * @version 19/November/2019 The ORIGIN |
mcm | 2:d6cde3037eac | 1449 | * @pre N/A. |
mcm | 2:d6cde3037eac | 1450 | * @warning N/A. |
mcm | 2:d6cde3037eac | 1451 | */ |
mcm | 2:d6cde3037eac | 1452 | HDC2080::HDC2080_status_t HDC2080::HDC2080_SetMeasurementConf ( HDC2080_data_t myMeasConf ) |
mcm | 2:d6cde3037eac | 1453 | { |
mcm | 2:d6cde3037eac | 1454 | char cmd[2] = { 0U }; |
mcm | 2:d6cde3037eac | 1455 | uint32_t aux; |
mcm | 2:d6cde3037eac | 1456 | |
mcm | 2:d6cde3037eac | 1457 | /* Read the register */ |
mcm | 2:d6cde3037eac | 1458 | cmd[0] = HDC2080_MEASUREMENT_CONFIGURATION; |
mcm | 2:d6cde3037eac | 1459 | aux = _i2c.write ( _HDC2080_Addr, &cmd[0], 1U, true ); |
mcm | 2:d6cde3037eac | 1460 | aux = _i2c.read ( _HDC2080_Addr, &cmd[1], 1U ); |
mcm | 2:d6cde3037eac | 1461 | |
mcm | 2:d6cde3037eac | 1462 | /* Update the register */ |
mcm | 2:d6cde3037eac | 1463 | cmd[1] &= ~( MEASUREMENT_CONF_TRES_MASK | MEASUREMENT_CONF_HRES_MASK | MEASUREMENT_CONF_MEAS_CONF_MASK ); |
mcm | 2:d6cde3037eac | 1464 | cmd[1] |= ( myMeasConf.tres | myMeasConf.hres | myMeasConf.meas_conf ); |
mcm | 2:d6cde3037eac | 1465 | aux = _i2c.write ( _HDC2080_Addr, &cmd[0], sizeof( cmd )/sizeof( cmd[0] ), false ); |
mcm | 2:d6cde3037eac | 1466 | |
mcm | 2:d6cde3037eac | 1467 | |
mcm | 2:d6cde3037eac | 1468 | |
mcm | 2:d6cde3037eac | 1469 | if ( aux == I2C_SUCCESS ) { |
mcm | 2:d6cde3037eac | 1470 | return HDC2080_SUCCESS; |
mcm | 2:d6cde3037eac | 1471 | } else { |
mcm | 2:d6cde3037eac | 1472 | return HDC2080_FAILURE; |
mcm | 2:d6cde3037eac | 1473 | } |
mcm | 2:d6cde3037eac | 1474 | } |
mcm | 2:d6cde3037eac | 1475 | |
mcm | 2:d6cde3037eac | 1476 | |
mcm | 2:d6cde3037eac | 1477 | |
mcm | 2:d6cde3037eac | 1478 | /** |
mcm | 2:d6cde3037eac | 1479 | * @brief HDC2080_GetMeasurementConf ( HDC2080_data_t* ) |
mcm | 2:d6cde3037eac | 1480 | * |
mcm | 2:d6cde3037eac | 1481 | * @details It gets the measurement configuration. |
mcm | 2:d6cde3037eac | 1482 | * |
mcm | 2:d6cde3037eac | 1483 | * @param[in] N/A. |
mcm | 2:d6cde3037eac | 1484 | * |
mcm | 2:d6cde3037eac | 1485 | * @param[out] myMeasConf: Temperature resolution, Humidity resolution and Measurement configuration. |
mcm | 2:d6cde3037eac | 1486 | * |
mcm | 2:d6cde3037eac | 1487 | * |
mcm | 2:d6cde3037eac | 1488 | * @return Status of HDC2080_GetMeasurementConf. |
mcm | 2:d6cde3037eac | 1489 | * |
mcm | 2:d6cde3037eac | 1490 | * |
mcm | 2:d6cde3037eac | 1491 | * @author Manuel Caballero |
mcm | 2:d6cde3037eac | 1492 | * @date 19/November/2019 |
mcm | 2:d6cde3037eac | 1493 | * @version 19/November/2019 The ORIGIN |
mcm | 2:d6cde3037eac | 1494 | * @pre N/A. |
mcm | 2:d6cde3037eac | 1495 | * @warning N/A. |
mcm | 2:d6cde3037eac | 1496 | */ |
mcm | 2:d6cde3037eac | 1497 | HDC2080::HDC2080_status_t HDC2080::HDC2080_GetMeasurementConf ( HDC2080_data_t* myMeasConf ) |
mcm | 2:d6cde3037eac | 1498 | { |
mcm | 2:d6cde3037eac | 1499 | char cmd = 0U; |
mcm | 2:d6cde3037eac | 1500 | uint32_t aux; |
mcm | 2:d6cde3037eac | 1501 | |
mcm | 2:d6cde3037eac | 1502 | /* Read the register */ |
mcm | 2:d6cde3037eac | 1503 | cmd = HDC2080_MEASUREMENT_CONFIGURATION; |
mcm | 2:d6cde3037eac | 1504 | aux = _i2c.write ( _HDC2080_Addr, &cmd, 1U, true ); |
mcm | 2:d6cde3037eac | 1505 | aux = _i2c.read ( _HDC2080_Addr, &cmd, 1U ); |
mcm | 2:d6cde3037eac | 1506 | |
mcm | 2:d6cde3037eac | 1507 | /* Parse the data */ |
mcm | 2:d6cde3037eac | 1508 | myMeasConf->tres = (HDC2080_measurement_configuration_tres_t)( MEASUREMENT_CONF_TRES_MASK & cmd ); |
mcm | 2:d6cde3037eac | 1509 | myMeasConf->hres = (HDC2080_measurement_configuration_hres_t)( MEASUREMENT_CONF_HRES_MASK & cmd ); |
mcm | 2:d6cde3037eac | 1510 | myMeasConf->meas_conf = (HDC2080_measurement_configuration_meas_conf_t)( MEASUREMENT_CONF_MEAS_CONF_MASK & cmd ); |
mcm | 2:d6cde3037eac | 1511 | |
mcm | 2:d6cde3037eac | 1512 | |
mcm | 2:d6cde3037eac | 1513 | |
mcm | 2:d6cde3037eac | 1514 | if ( aux == I2C_SUCCESS ) { |
mcm | 2:d6cde3037eac | 1515 | return HDC2080_SUCCESS; |
mcm | 2:d6cde3037eac | 1516 | } else { |
mcm | 2:d6cde3037eac | 1517 | return HDC2080_FAILURE; |
mcm | 2:d6cde3037eac | 1518 | } |
mcm | 2:d6cde3037eac | 1519 | } |
mcm | 2:d6cde3037eac | 1520 | |
mcm | 2:d6cde3037eac | 1521 | |
mcm | 2:d6cde3037eac | 1522 | |
mcm | 2:d6cde3037eac | 1523 | /** |
mcm | 2:d6cde3037eac | 1524 | * @brief HDC2080_StartMeasurementTrigger ( void ) |
mcm | 2:d6cde3037eac | 1525 | * |
mcm | 2:d6cde3037eac | 1526 | * @details It triggers a new measurement. |
mcm | 2:d6cde3037eac | 1527 | * |
mcm | 2:d6cde3037eac | 1528 | * @param[in] N/A. |
mcm | 2:d6cde3037eac | 1529 | * |
mcm | 2:d6cde3037eac | 1530 | * @param[out] N/A. |
mcm | 2:d6cde3037eac | 1531 | * |
mcm | 2:d6cde3037eac | 1532 | * |
mcm | 2:d6cde3037eac | 1533 | * @return Status of HDC2080_StartMeasurementTrigger. |
mcm | 2:d6cde3037eac | 1534 | * |
mcm | 2:d6cde3037eac | 1535 | * |
mcm | 2:d6cde3037eac | 1536 | * @author Manuel Caballero |
mcm | 2:d6cde3037eac | 1537 | * @date 19/November/2019 |
mcm | 2:d6cde3037eac | 1538 | * @version 19/November/2019 The ORIGIN |
mcm | 2:d6cde3037eac | 1539 | * @pre N/A. |
mcm | 2:d6cde3037eac | 1540 | * @warning N/A. |
mcm | 2:d6cde3037eac | 1541 | */ |
mcm | 2:d6cde3037eac | 1542 | HDC2080::HDC2080_status_t HDC2080::HDC2080_StartMeasurementTrigger ( void ) |
mcm | 2:d6cde3037eac | 1543 | { |
mcm | 2:d6cde3037eac | 1544 | char cmd[2] = { 0U }; |
mcm | 2:d6cde3037eac | 1545 | uint32_t aux; |
mcm | 2:d6cde3037eac | 1546 | |
mcm | 2:d6cde3037eac | 1547 | /* Read the register */ |
mcm | 2:d6cde3037eac | 1548 | cmd[0] = HDC2080_MEASUREMENT_CONFIGURATION; |
mcm | 2:d6cde3037eac | 1549 | aux = _i2c.write ( _HDC2080_Addr, &cmd[0], 1U, true ); |
mcm | 2:d6cde3037eac | 1550 | aux = _i2c.read ( _HDC2080_Addr, &cmd[1], 1U ); |
mcm | 2:d6cde3037eac | 1551 | |
mcm | 2:d6cde3037eac | 1552 | /* Update the register */ |
mcm | 2:d6cde3037eac | 1553 | cmd[1] |= MEASUREMENT_CONF_MEAS_TRIG_START_MEASUREMENT; |
mcm | 2:d6cde3037eac | 1554 | aux = _i2c.write ( _HDC2080_Addr, &cmd[0], sizeof( cmd )/sizeof( cmd[0] ), false ); |
mcm | 2:d6cde3037eac | 1555 | |
mcm | 2:d6cde3037eac | 1556 | |
mcm | 2:d6cde3037eac | 1557 | |
mcm | 2:d6cde3037eac | 1558 | if ( aux == I2C_SUCCESS ) { |
mcm | 2:d6cde3037eac | 1559 | return HDC2080_SUCCESS; |
mcm | 2:d6cde3037eac | 1560 | } else { |
mcm | 2:d6cde3037eac | 1561 | return HDC2080_FAILURE; |
mcm | 2:d6cde3037eac | 1562 | } |
mcm | 2:d6cde3037eac | 1563 | } |
mcm | 2:d6cde3037eac | 1564 | |
mcm | 2:d6cde3037eac | 1565 | |
mcm | 2:d6cde3037eac | 1566 | |
mcm | 2:d6cde3037eac | 1567 | /** |
mcm | 2:d6cde3037eac | 1568 | * @brief HDC2080_GetMeasurementTrigger ( HDC2080_data_t* ) |
mcm | 2:d6cde3037eac | 1569 | * |
mcm | 2:d6cde3037eac | 1570 | * @details It gets the measurement trigger flag. |
mcm | 2:d6cde3037eac | 1571 | * |
mcm | 2:d6cde3037eac | 1572 | * @param[in] N/A. |
mcm | 2:d6cde3037eac | 1573 | * |
mcm | 2:d6cde3037eac | 1574 | * @param[out] myMeasTrig: Measurement trigger flag. |
mcm | 2:d6cde3037eac | 1575 | * |
mcm | 2:d6cde3037eac | 1576 | * |
mcm | 2:d6cde3037eac | 1577 | * @return Status of HDC2080_GetMeasurementTrigger. |
mcm | 2:d6cde3037eac | 1578 | * |
mcm | 2:d6cde3037eac | 1579 | * |
mcm | 2:d6cde3037eac | 1580 | * @author Manuel Caballero |
mcm | 2:d6cde3037eac | 1581 | * @date 19/November/2019 |
mcm | 2:d6cde3037eac | 1582 | * @version 19/November/2019 The ORIGIN |
mcm | 2:d6cde3037eac | 1583 | * @pre N/A. |
mcm | 2:d6cde3037eac | 1584 | * @warning N/A. |
mcm | 2:d6cde3037eac | 1585 | */ |
mcm | 2:d6cde3037eac | 1586 | HDC2080::HDC2080_status_t HDC2080::HDC2080_GetMeasurementTrigger ( HDC2080_data_t* myMeasTrig ) |
mcm | 2:d6cde3037eac | 1587 | { |
mcm | 2:d6cde3037eac | 1588 | char cmd = 0U; |
mcm | 2:d6cde3037eac | 1589 | uint32_t aux; |
mcm | 2:d6cde3037eac | 1590 | |
mcm | 2:d6cde3037eac | 1591 | /* Read the register */ |
mcm | 2:d6cde3037eac | 1592 | cmd = HDC2080_MEASUREMENT_CONFIGURATION; |
mcm | 2:d6cde3037eac | 1593 | aux = _i2c.write ( _HDC2080_Addr, &cmd, 1U, true ); |
mcm | 2:d6cde3037eac | 1594 | aux = _i2c.read ( _HDC2080_Addr, &cmd, 1U ); |
mcm | 2:d6cde3037eac | 1595 | |
mcm | 2:d6cde3037eac | 1596 | /* Parse the data */ |
mcm | 2:d6cde3037eac | 1597 | myMeasTrig->meas_trig = (HDC2080_measurement_configuration_meas_trig_t)( MEASUREMENT_CONF_MEAS_TRIG_MASK & cmd ); |
mcm | 2:d6cde3037eac | 1598 | |
mcm | 2:d6cde3037eac | 1599 | |
mcm | 2:d6cde3037eac | 1600 | |
mcm | 2:d6cde3037eac | 1601 | if ( aux == I2C_SUCCESS ) { |
mcm | 2:d6cde3037eac | 1602 | return HDC2080_SUCCESS; |
mcm | 2:d6cde3037eac | 1603 | } else { |
mcm | 2:d6cde3037eac | 1604 | return HDC2080_FAILURE; |
mcm | 2:d6cde3037eac | 1605 | } |
mcm | 2:d6cde3037eac | 1606 | } |
mcm | 2:d6cde3037eac | 1607 | |
mcm | 2:d6cde3037eac | 1608 | |
mcm | 2:d6cde3037eac | 1609 | |
mcm | 2:d6cde3037eac | 1610 | /** |
mcm | 2:d6cde3037eac | 1611 | * @brief HDC2080_GetManufacturerID ( HDC2080_data_t* ) |
mcm | 2:d6cde3037eac | 1612 | * |
mcm | 2:d6cde3037eac | 1613 | * @details It gets the manufacturer ID. |
mcm | 2:d6cde3037eac | 1614 | * |
mcm | 2:d6cde3037eac | 1615 | * @param[in] N/A. |
mcm | 2:d6cde3037eac | 1616 | * |
mcm | 2:d6cde3037eac | 1617 | * @param[out] myManufacturerID: Manufacturer ID. |
mcm | 2:d6cde3037eac | 1618 | * |
mcm | 2:d6cde3037eac | 1619 | * |
mcm | 2:d6cde3037eac | 1620 | * @return Status of HDC2080_GetManufacturerID. |
mcm | 2:d6cde3037eac | 1621 | * |
mcm | 2:d6cde3037eac | 1622 | * |
mcm | 2:d6cde3037eac | 1623 | * @author Manuel Caballero |
mcm | 2:d6cde3037eac | 1624 | * @date 19/November/2019 |
mcm | 2:d6cde3037eac | 1625 | * @version 19/November/2019 The ORIGIN |
mcm | 2:d6cde3037eac | 1626 | * @pre N/A. |
mcm | 2:d6cde3037eac | 1627 | * @warning N/A. |
mcm | 2:d6cde3037eac | 1628 | */ |
mcm | 2:d6cde3037eac | 1629 | HDC2080::HDC2080_status_t HDC2080::HDC2080_GetManufacturerID ( HDC2080_data_t* myManufacturerID ) |
mcm | 2:d6cde3037eac | 1630 | { |
mcm | 2:d6cde3037eac | 1631 | char cmd[2] = { 0U }; |
mcm | 2:d6cde3037eac | 1632 | uint32_t aux; |
mcm | 2:d6cde3037eac | 1633 | |
mcm | 2:d6cde3037eac | 1634 | /* Read the register */ |
mcm | 2:d6cde3037eac | 1635 | cmd[0] = HDC2080_MANUFACTURER_ID_LOW; |
mcm | 2:d6cde3037eac | 1636 | aux = _i2c.write ( _HDC2080_Addr, &cmd[0], 1U, true ); |
mcm | 2:d6cde3037eac | 1637 | aux = _i2c.read ( _HDC2080_Addr, &cmd[0], sizeof( cmd )/sizeof( cmd[0] ) ); |
mcm | 2:d6cde3037eac | 1638 | |
mcm | 2:d6cde3037eac | 1639 | /* Parse the data */ |
mcm | 2:d6cde3037eac | 1640 | myManufacturerID->manufacturer_id = cmd[1]; |
mcm | 2:d6cde3037eac | 1641 | myManufacturerID->manufacturer_id <<= 8U; |
mcm | 2:d6cde3037eac | 1642 | myManufacturerID->manufacturer_id |= cmd[0]; |
mcm | 2:d6cde3037eac | 1643 | |
mcm | 2:d6cde3037eac | 1644 | |
mcm | 2:d6cde3037eac | 1645 | |
mcm | 2:d6cde3037eac | 1646 | if ( aux == I2C_SUCCESS ) { |
mcm | 2:d6cde3037eac | 1647 | return HDC2080_SUCCESS; |
mcm | 2:d6cde3037eac | 1648 | } else { |
mcm | 2:d6cde3037eac | 1649 | return HDC2080_FAILURE; |
mcm | 2:d6cde3037eac | 1650 | } |
mcm | 2:d6cde3037eac | 1651 | } |
mcm | 2:d6cde3037eac | 1652 | |
mcm | 2:d6cde3037eac | 1653 | |
mcm | 2:d6cde3037eac | 1654 | |
mcm | 2:d6cde3037eac | 1655 | /** |
mcm | 2:d6cde3037eac | 1656 | * @brief HDC2080_GetDeviceID ( HDC2080_data_t* ) |
mcm | 2:d6cde3037eac | 1657 | * |
mcm | 2:d6cde3037eac | 1658 | * @details It gets the device ID. |
mcm | 2:d6cde3037eac | 1659 | * |
mcm | 2:d6cde3037eac | 1660 | * @param[in] N/A. |
mcm | 2:d6cde3037eac | 1661 | * |
mcm | 2:d6cde3037eac | 1662 | * @param[out] myDeviceID: Device ID. |
mcm | 2:d6cde3037eac | 1663 | * |
mcm | 2:d6cde3037eac | 1664 | * |
mcm | 2:d6cde3037eac | 1665 | * @return Status of HDC2080_GetDeviceID. |
mcm | 2:d6cde3037eac | 1666 | * |
mcm | 2:d6cde3037eac | 1667 | * |
mcm | 2:d6cde3037eac | 1668 | * @author Manuel Caballero |
mcm | 2:d6cde3037eac | 1669 | * @date 19/November/2019 |
mcm | 2:d6cde3037eac | 1670 | * @version 19/November/2019 The ORIGIN |
mcm | 2:d6cde3037eac | 1671 | * @pre N/A. |
mcm | 2:d6cde3037eac | 1672 | * @warning N/A. |
mcm | 2:d6cde3037eac | 1673 | */ |
mcm | 2:d6cde3037eac | 1674 | HDC2080::HDC2080_status_t HDC2080::HDC2080_GetDeviceID ( HDC2080_data_t* myDeviceID ) |
mcm | 2:d6cde3037eac | 1675 | { |
mcm | 2:d6cde3037eac | 1676 | char cmd[2] = { 0U }; |
mcm | 2:d6cde3037eac | 1677 | uint32_t aux; |
mcm | 2:d6cde3037eac | 1678 | |
mcm | 2:d6cde3037eac | 1679 | /* Read the register */ |
mcm | 2:d6cde3037eac | 1680 | cmd[0] = HDC2080_DEVICE_ID_LOW; |
mcm | 2:d6cde3037eac | 1681 | aux = _i2c.write ( _HDC2080_Addr, &cmd[0], 1U, true ); |
mcm | 2:d6cde3037eac | 1682 | aux = _i2c.read ( _HDC2080_Addr, &cmd[0], sizeof( cmd )/sizeof( cmd[0] ) ); |
mcm | 2:d6cde3037eac | 1683 | |
mcm | 2:d6cde3037eac | 1684 | /* Parse the data */ |
mcm | 2:d6cde3037eac | 1685 | myDeviceID->device_id = cmd[1]; |
mcm | 2:d6cde3037eac | 1686 | myDeviceID->device_id <<= 8U; |
mcm | 2:d6cde3037eac | 1687 | myDeviceID->device_id |= cmd[0]; |
mcm | 2:d6cde3037eac | 1688 | |
mcm | 2:d6cde3037eac | 1689 | |
mcm | 2:d6cde3037eac | 1690 | |
mcm | 2:d6cde3037eac | 1691 | if ( aux == I2C_SUCCESS ) { |
mcm | 2:d6cde3037eac | 1692 | return HDC2080_SUCCESS; |
mcm | 2:d6cde3037eac | 1693 | } else { |
mcm | 2:d6cde3037eac | 1694 | return HDC2080_FAILURE; |
mcm | 2:d6cde3037eac | 1695 | } |
mcm | 2:d6cde3037eac | 1696 | } |