Single and Dual Zone Infra Red Thermometer

Committer:
mcm
Date:
Tue Dec 26 11:14:36 2017 +0000
Revision:
4:c5344a5f3266
Parent:
3:6a5b6fcff28e
The driver was completed and tested, it works as expected. It was tested using the NUCLEO-L152RE.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mcm 1:df258d25fd8a 1 /**
mcm 1:df258d25fd8a 2 * @brief MLX90614.h
mcm 1:df258d25fd8a 3 * @details Single and Dual Zone Infra Red Thermometer.
mcm 1:df258d25fd8a 4 * Header file.
mcm 1:df258d25fd8a 5 *
mcm 1:df258d25fd8a 6 *
mcm 1:df258d25fd8a 7 * @return NA
mcm 1:df258d25fd8a 8 *
mcm 1:df258d25fd8a 9 * @author Manuel Caballero
mcm 1:df258d25fd8a 10 * @date 26/December/2017
mcm 1:df258d25fd8a 11 * @version 26/December/2017 The ORIGIN
mcm 1:df258d25fd8a 12 * @pre NaN.
mcm 1:df258d25fd8a 13 * @warning NaN
mcm 1:df258d25fd8a 14 * @pre This code belongs to AqueronteBlog ( http://unbarquero.blogspot.com ).
mcm 1:df258d25fd8a 15 */
mcm 1:df258d25fd8a 16 #ifndef MLX90614_H
mcm 1:df258d25fd8a 17 #define MLX90614_H
mcm 1:df258d25fd8a 18
mcm 1:df258d25fd8a 19 #include "mbed.h"
mcm 1:df258d25fd8a 20
mcm 1:df258d25fd8a 21
mcm 1:df258d25fd8a 22 /**
mcm 1:df258d25fd8a 23 Example:
mcm 1:df258d25fd8a 24
mcm 3:6a5b6fcff28e 25 #include "mbed.h"
mcm 3:6a5b6fcff28e 26 #include "MLX90614.h"
mcm 3:6a5b6fcff28e 27
mcm 3:6a5b6fcff28e 28 MLX90614 myMLX90614 ( I2C_SDA, I2C_SCL, MLX90614::MLX90614_ADDRESS, 100000 );
mcm 3:6a5b6fcff28e 29 Serial pc ( USBTX, USBRX );
mcm 3:6a5b6fcff28e 30
mcm 3:6a5b6fcff28e 31 Ticker newReading;
mcm 3:6a5b6fcff28e 32 DigitalOut myled(LED1);
mcm 3:6a5b6fcff28e 33
mcm 3:6a5b6fcff28e 34 MLX90614::MLX90614_status_t aux;
mcm 3:6a5b6fcff28e 35 MLX90614::MLX90614_vector_data_t myMLX90614Data;
mcm 3:6a5b6fcff28e 36 uint8_t myState = 0;
mcm 3:6a5b6fcff28e 37
mcm 3:6a5b6fcff28e 38
mcm 3:6a5b6fcff28e 39 void changeDATA ( void )
mcm 3:6a5b6fcff28e 40 {
mcm 3:6a5b6fcff28e 41 myState = 1;
mcm 3:6a5b6fcff28e 42 }
mcm 3:6a5b6fcff28e 43
mcm 3:6a5b6fcff28e 44
mcm 3:6a5b6fcff28e 45 int main()
mcm 3:6a5b6fcff28e 46 {
mcm 3:6a5b6fcff28e 47 pc.baud ( 115200 );
mcm 3:6a5b6fcff28e 48
mcm 3:6a5b6fcff28e 49 // Get the IDs
mcm 3:6a5b6fcff28e 50 aux = myMLX90614.MLX90614_GetID_Numbers ( &myMLX90614Data );
mcm 3:6a5b6fcff28e 51 pc.printf( "ID_0: %d\nID_1: %d\nID_2: %d\nID_3: %d\r\n", myMLX90614Data.ID[0], myMLX90614Data.ID[1], myMLX90614Data.ID[2], myMLX90614Data.ID[3] );
mcm 3:6a5b6fcff28e 52
mcm 3:6a5b6fcff28e 53 newReading.attach( &changeDATA, 1 ); // the address of the function to be attached ( changeDATA ) and the interval ( 1s )
mcm 3:6a5b6fcff28e 54
mcm 3:6a5b6fcff28e 55 // Let the callbacks take care of everything
mcm 3:6a5b6fcff28e 56 while(1) {
mcm 3:6a5b6fcff28e 57 sleep();
mcm 3:6a5b6fcff28e 58
mcm 3:6a5b6fcff28e 59 myled = 1;
mcm 3:6a5b6fcff28e 60
mcm 3:6a5b6fcff28e 61 if ( myState == 1 ) {
mcm 3:6a5b6fcff28e 62 // Get the data
mcm 3:6a5b6fcff28e 63 aux = myMLX90614.MLX90614_ReadTA ( &myMLX90614Data );
mcm 3:6a5b6fcff28e 64 aux = myMLX90614.MLX90614_ReadTObj1 ( &myMLX90614Data );
mcm 3:6a5b6fcff28e 65
mcm 3:6a5b6fcff28e 66 pc.printf( "Ta: %0.2fC\nTObj1: %0.2fC\r\n", myMLX90614Data.TA, myMLX90614Data.TObj1 );
mcm 3:6a5b6fcff28e 67
mcm 3:6a5b6fcff28e 68 myState = 0; // Reset the variable
mcm 3:6a5b6fcff28e 69 }
mcm 3:6a5b6fcff28e 70
mcm 3:6a5b6fcff28e 71 myled = 0;
mcm 3:6a5b6fcff28e 72 }
mcm 3:6a5b6fcff28e 73 }
mcm 1:df258d25fd8a 74 */
mcm 1:df258d25fd8a 75
mcm 1:df258d25fd8a 76
mcm 1:df258d25fd8a 77 /*!
mcm 1:df258d25fd8a 78 Library for the MLX90614 Single and Dual Zone Infra Red Thermometer.
mcm 1:df258d25fd8a 79 */
mcm 1:df258d25fd8a 80 class MLX90614
mcm 1:df258d25fd8a 81 {
mcm 1:df258d25fd8a 82 public:
mcm 1:df258d25fd8a 83 /**
mcm 1:df258d25fd8a 84 * @brief DEFAULT ADDRESSES
mcm 1:df258d25fd8a 85 */
mcm 1:df258d25fd8a 86 typedef enum {
mcm 1:df258d25fd8a 87 MLX90614_ADDRESS = ( 0x5A << 1 ) /*!< MLX90614 I2C Address */
mcm 1:df258d25fd8a 88 } MLX90614_address_t;
mcm 1:df258d25fd8a 89
mcm 1:df258d25fd8a 90
mcm 1:df258d25fd8a 91 // COMMANDS
mcm 1:df258d25fd8a 92 /**
mcm 1:df258d25fd8a 93 * @brief COMMANDS
mcm 1:df258d25fd8a 94 */
mcm 1:df258d25fd8a 95 typedef enum {
mcm 1:df258d25fd8a 96 MLX90614_RAM_ACCESS = 0b00011111, /*!< Seconds. RANGE 00-59 */
mcm 1:df258d25fd8a 97 MLX90614_EEPROM_ACCESS = 0b00100000, /*!< LSB of Temp */
mcm 1:df258d25fd8a 98 MLX90614_FLAGS = 0b11110000, /*!< LSB of Temp */
mcm 1:df258d25fd8a 99 MLX90614_SLEEP = 0b11111111 /*!< LSB of Temp */
mcm 1:df258d25fd8a 100 } MLX90614_command_t;
mcm 1:df258d25fd8a 101
mcm 1:df258d25fd8a 102
mcm 1:df258d25fd8a 103 // REGISTERS
mcm 1:df258d25fd8a 104 /**
mcm 1:df258d25fd8a 105 * @brief EEPROM REGISTERS
mcm 1:df258d25fd8a 106 */
mcm 1:df258d25fd8a 107 typedef enum {
mcm 1:df258d25fd8a 108 MLX90614_TO_MAX = ( MLX90614_EEPROM_ACCESS | 0x00 ), /*!< To max */
mcm 1:df258d25fd8a 109 MLX90614_TO_MIN = ( MLX90614_EEPROM_ACCESS | 0x01 ), /*!< To min */
mcm 1:df258d25fd8a 110 MLX90614_PWMCTRL = ( MLX90614_EEPROM_ACCESS | 0x02 ), /*!< PWMCTRL */
mcm 1:df258d25fd8a 111 MLX90614_TA_RANGE = ( MLX90614_EEPROM_ACCESS | 0x03 ), /*!< Ta range */
mcm 1:df258d25fd8a 112 MLX90614_EMISSIVITY_CORRECTION_COEFFICIENT = ( MLX90614_EEPROM_ACCESS | 0x04 ), /*!< Emissivity correction coefficient */
mcm 1:df258d25fd8a 113 MLX90614_CONFIG_REGISTER_1 = ( MLX90614_EEPROM_ACCESS | 0x05 ), /*!< Config Register1 */
mcm 1:df258d25fd8a 114 MLX90614_SMBUS_ADDRESS = ( MLX90614_EEPROM_ACCESS | 0x0E ), /*!< SMBus address (LSByte only) */
mcm 1:df258d25fd8a 115 MLX90614_ID_NUMBER_0 = ( MLX90614_EEPROM_ACCESS | 0x0C ), /*!< ID number */
mcm 1:df258d25fd8a 116 MLX90614_ID_NUMBER_1 = ( MLX90614_EEPROM_ACCESS | 0x0D ), /*!< ID number */
mcm 1:df258d25fd8a 117 MLX90614_ID_NUMBER_2 = ( MLX90614_EEPROM_ACCESS | 0x0E ), /*!< ID number */
mcm 1:df258d25fd8a 118 MLX90614_ID_NUMBER_3 = ( MLX90614_EEPROM_ACCESS | 0x0F ) /*!< ID number */
mcm 1:df258d25fd8a 119 } MLX90614_eeprom_registers_t;
mcm 1:df258d25fd8a 120
mcm 1:df258d25fd8a 121
mcm 1:df258d25fd8a 122 /**
mcm 1:df258d25fd8a 123 * @brief RAM REGISTERS
mcm 1:df258d25fd8a 124 */
mcm 1:df258d25fd8a 125 typedef enum {
mcm 1:df258d25fd8a 126 MLX90614_RAW_DATA_IR_CHANNEL_1 = ( MLX90614_RAM_ACCESS & 0x04 ), /*!< Raw data IR channel 1 */
mcm 1:df258d25fd8a 127 MLX90614_RAW_DATA_IR_CHANNEL_2 = ( MLX90614_RAM_ACCESS & 0x05 ), /*!< Raw data IR channel 2 */
mcm 1:df258d25fd8a 128 MLX90614_TA = ( MLX90614_RAM_ACCESS & 0x06 ), /*!< TA */
mcm 1:df258d25fd8a 129 MLX90614_TOBJ_1 = ( MLX90614_RAM_ACCESS & 0x07 ), /*!< TOBJ 1 */
mcm 1:df258d25fd8a 130 MLX90614_TOBJ_2 = ( MLX90614_RAM_ACCESS & 0x08 ) /*!< TOBJ 2 */
mcm 1:df258d25fd8a 131 } MLX90614_ram_registers_t;
mcm 1:df258d25fd8a 132
mcm 1:df258d25fd8a 133
mcm 1:df258d25fd8a 134
mcm 1:df258d25fd8a 135 // COMMANDS
mcm 1:df258d25fd8a 136 /**
mcm 1:df258d25fd8a 137 * @brief FLAGS
mcm 1:df258d25fd8a 138 */
mcm 1:df258d25fd8a 139 typedef enum {
mcm 1:df258d25fd8a 140 FLAG_EEBUSY_HIGH = ( 1 << 7 ), /*!< The previous write/erase EEPROM access is still in progress. High active */
mcm 1:df258d25fd8a 141 FLAG_EEBUSY_LOW = ( 0 << 7 ), /*!< The previous write/erase EEPROM access is still in progress. LOW */
mcm 1:df258d25fd8a 142 FLAG_EE_DEAD_HIGH = ( 1 << 5 ), /*!< EEPROM double error has occurred. High active */
mcm 1:df258d25fd8a 143 FLAG_EE_DEAD_LOW = ( 0 << 5 ), /*!< EEPROM double error has occurred. LOW */
mcm 1:df258d25fd8a 144 FLAG_INIT_LOW = ( 0 << 4 ), /*!< POR initialization routine is still ongoing. Low active */
mcm 1:df258d25fd8a 145 FLAG_INIT_HIGH = ( 1 << 4 ) /*!< POR initialization routine is still ongoing. HIGH */
mcm 1:df258d25fd8a 146 } MLX90614_flags_t;
mcm 1:df258d25fd8a 147
mcm 1:df258d25fd8a 148
mcm 1:df258d25fd8a 149 /**
mcm 1:df258d25fd8a 150 * @brief CONFIG REGISTER 1
mcm 1:df258d25fd8a 151 */
mcm 1:df258d25fd8a 152 // IIR
mcm 1:df258d25fd8a 153 typedef enum {
mcm 1:df258d25fd8a 154 CONFIGREG1_IIR_MASK = ( 7 << 0 ), /*!< IIR Mask */
mcm 1:df258d25fd8a 155 CONFIGREG1_IIR_100 = ( 4 << 0 ), /*!< IIR (100%) a1=1, b1=0 */
mcm 1:df258d25fd8a 156 CONFIGREG1_IIR_80 = ( 5 << 0 ), /*!< IIR (80%) a1=0.8, b1=0.2 */
mcm 1:df258d25fd8a 157 CONFIGREG1_IIR_67 = ( 6 << 0 ), /*!< IIR (67%) a1=0.666, b1=0.333 */
mcm 1:df258d25fd8a 158 CONFIGREG1_IIR_57 = ( 7 << 0 ), /*!< IIR (57%) a1=0.571, b1=0.428 */
mcm 1:df258d25fd8a 159 CONFIGREG1_IIR_50 = ( 0 << 0 ), /*!< IIR (50%) a1=0.5, b1=0.5 */
mcm 1:df258d25fd8a 160 CONFIGREG1_IIR_25 = ( 1 << 0 ), /*!< IIR (25%) a1=0.25, b1=0.75 */
mcm 1:df258d25fd8a 161 CONFIGREG1_IIR_17 = ( 2 << 0 ), /*!< IIR (17%) a1=0.166(6), b1=0.83(3) */
mcm 1:df258d25fd8a 162 CONFIGREG1_IIR_13 = ( 3 << 0 ) /*!< IIR (13%) a1=0.125, b1=0.875 */
mcm 1:df258d25fd8a 163 } MLX90614_configregister1_iir_t;
mcm 1:df258d25fd8a 164
mcm 4:c5344a5f3266 165 // TEMPERATURE SOURCES
mcm 4:c5344a5f3266 166 typedef enum {
mcm 4:c5344a5f3266 167 CONFIGREG1_TEMP_MASK = ( 3 << 4 ), /*!< Temp Mask */
mcm 4:c5344a5f3266 168 CONFIGREG1_TEMP_TA_TOBJ1 = ( 0 << 4 ), /*!< Ta, Tobj1 */
mcm 4:c5344a5f3266 169 CONFIGREG1_TEMP_TA_TOBJ2 = ( 1 << 4 ), /*!< Ta, Tobj2 */
mcm 4:c5344a5f3266 170 CONFIGREG1_TEMP_TOBJ2 = ( 2 << 4 ), /*!< Tobj2 */
mcm 4:c5344a5f3266 171 CONFIGREG1_TEMP_TOBJ1_TOBJ2 = ( 3 << 4 ) /*!< Tobj1, Tobj2 */
mcm 4:c5344a5f3266 172 } MLX90614_configregister1_temp_t;
mcm 1:df258d25fd8a 173
mcm 1:df258d25fd8a 174
mcm 1:df258d25fd8a 175
mcm 1:df258d25fd8a 176
mcm 1:df258d25fd8a 177
mcm 1:df258d25fd8a 178 #ifndef MLX90614_VECTOR_STRUCT_H
mcm 1:df258d25fd8a 179 #define MLX90614_VECTOR_STRUCT_H
mcm 1:df258d25fd8a 180 typedef struct {
mcm 1:df258d25fd8a 181 uint16_t RawTA;
mcm 1:df258d25fd8a 182 uint16_t RawTObj1;
mcm 1:df258d25fd8a 183 uint16_t RawTObj2;
mcm 1:df258d25fd8a 184 uint8_t PEC;
mcm 1:df258d25fd8a 185
mcm 1:df258d25fd8a 186 float TA;
mcm 1:df258d25fd8a 187 float TObj1;
mcm 1:df258d25fd8a 188 float TObj2;
mcm 1:df258d25fd8a 189
mcm 1:df258d25fd8a 190 uint16_t ID[4];
mcm 1:df258d25fd8a 191 float Emissivity;
mcm 1:df258d25fd8a 192 MLX90614_configregister1_iir_t IIR;
mcm 1:df258d25fd8a 193 MLX90614_flags_t Flags;
mcm 4:c5344a5f3266 194 MLX90614_configregister1_temp_t TempSource;
mcm 1:df258d25fd8a 195 } MLX90614_vector_data_t;
mcm 1:df258d25fd8a 196 #endif
mcm 1:df258d25fd8a 197
mcm 1:df258d25fd8a 198
mcm 1:df258d25fd8a 199
mcm 1:df258d25fd8a 200
mcm 1:df258d25fd8a 201 /**
mcm 1:df258d25fd8a 202 * @brief INTERNAL CONSTANTS
mcm 1:df258d25fd8a 203 */
mcm 1:df258d25fd8a 204 #define MLX90614_KELVIN_TO_CELSIUS 273.15
mcm 1:df258d25fd8a 205 #define MLX90614_KELVIN_CONVERSION 0.02
mcm 1:df258d25fd8a 206
mcm 1:df258d25fd8a 207 // MACRO: round function
mcm 1:df258d25fd8a 208 #define _MYROUND( x ) ({ \
mcm 1:df258d25fd8a 209 uint32_t aux_pre; \
mcm 1:df258d25fd8a 210 float aux_x; \
mcm 1:df258d25fd8a 211 \
mcm 1:df258d25fd8a 212 aux_x = (x); \
mcm 1:df258d25fd8a 213 aux_pre = (x); \
mcm 1:df258d25fd8a 214 aux_x -= aux_pre; \
mcm 1:df258d25fd8a 215 aux_x *= 10; \
mcm 1:df258d25fd8a 216 \
mcm 1:df258d25fd8a 217 if ( aux_x >= 5 ) \
mcm 1:df258d25fd8a 218 aux_pre++; \
mcm 1:df258d25fd8a 219 \
mcm 1:df258d25fd8a 220 aux_pre; \
mcm 1:df258d25fd8a 221 })
mcm 1:df258d25fd8a 222
mcm 1:df258d25fd8a 223
mcm 1:df258d25fd8a 224 typedef enum {
mcm 1:df258d25fd8a 225 MLX90614_SUCCESS = 0,
mcm 1:df258d25fd8a 226 MLX90614_FAILURE = 1,
mcm 1:df258d25fd8a 227
mcm 1:df258d25fd8a 228 MLX90614_TIMEOUT = 2*65535,
mcm 1:df258d25fd8a 229 MLX90614_FLAG_ERROR = 0x8000,
mcm 1:df258d25fd8a 230
mcm 1:df258d25fd8a 231 I2C_SUCCESS = 0, /*!< I2C communication was fine */
mcm 1:df258d25fd8a 232 I2C_FAILURE = 1
mcm 1:df258d25fd8a 233 } MLX90614_status_t;
mcm 1:df258d25fd8a 234
mcm 1:df258d25fd8a 235
mcm 1:df258d25fd8a 236
mcm 1:df258d25fd8a 237
mcm 1:df258d25fd8a 238
mcm 1:df258d25fd8a 239 /** Create an MLX90614 object connected to the specified I2C pins.
mcm 1:df258d25fd8a 240 *
mcm 1:df258d25fd8a 241 * @param sda I2C data pin
mcm 1:df258d25fd8a 242 * @param scl I2C clock pin
mcm 1:df258d25fd8a 243 * @param addr I2C slave address
mcm 1:df258d25fd8a 244 * @param freq I2C frequency in Hz.
mcm 1:df258d25fd8a 245 */
mcm 1:df258d25fd8a 246 MLX90614 ( PinName sda, PinName scl, uint32_t addr, uint32_t freq );
mcm 1:df258d25fd8a 247
mcm 1:df258d25fd8a 248 /** Delete MLX90614 object.
mcm 1:df258d25fd8a 249 */
mcm 1:df258d25fd8a 250 ~MLX90614();
mcm 1:df258d25fd8a 251
mcm 1:df258d25fd8a 252 /** It gets the ID numbers.
mcm 1:df258d25fd8a 253 */
mcm 3:6a5b6fcff28e 254 MLX90614_status_t MLX90614_GetID_Numbers ( MLX90614_vector_data_t* myID );
mcm 1:df258d25fd8a 255
mcm 1:df258d25fd8a 256 /** It reads the raw ambient temperature.
mcm 1:df258d25fd8a 257 */
mcm 3:6a5b6fcff28e 258 MLX90614_status_t MLX90614_ReadRawTA ( MLX90614_vector_data_t* myRawTA );
mcm 1:df258d25fd8a 259
mcm 1:df258d25fd8a 260 /** It reads the ambient temperature in Celsius degrees.
mcm 1:df258d25fd8a 261 */
mcm 3:6a5b6fcff28e 262 MLX90614_status_t MLX90614_ReadTA ( MLX90614_vector_data_t* myTA );
mcm 1:df258d25fd8a 263
mcm 1:df258d25fd8a 264 /** It reads the raw object 1 temperature.
mcm 1:df258d25fd8a 265 */
mcm 3:6a5b6fcff28e 266 MLX90614_status_t MLX90614_ReadRawTObj1 ( MLX90614_vector_data_t* myRawTObj1 );
mcm 1:df258d25fd8a 267
mcm 1:df258d25fd8a 268 /** It reads the object 1 temperature.
mcm 1:df258d25fd8a 269 */
mcm 3:6a5b6fcff28e 270 MLX90614_status_t MLX90614_ReadTObj1 ( MLX90614_vector_data_t* myObj1 );
mcm 1:df258d25fd8a 271
mcm 1:df258d25fd8a 272 /** It reads the raw object 2 temperature.
mcm 1:df258d25fd8a 273 */
mcm 3:6a5b6fcff28e 274 MLX90614_status_t MLX90614_ReadRawTObj2 ( MLX90614_vector_data_t* myRawTObj2 );
mcm 1:df258d25fd8a 275
mcm 1:df258d25fd8a 276 /** It reads the object 2 temperature.
mcm 1:df258d25fd8a 277 */
mcm 3:6a5b6fcff28e 278 MLX90614_status_t MLX90614_ReadTObj2 ( MLX90614_vector_data_t* myObj2 );
mcm 1:df258d25fd8a 279
mcm 1:df258d25fd8a 280 /** It gets the Emissivity correction coefficient.
mcm 1:df258d25fd8a 281 */
mcm 3:6a5b6fcff28e 282 MLX90614_status_t MLX90614_GetEmissivity ( MLX90614_vector_data_t* myEmissivity );
mcm 1:df258d25fd8a 283
mcm 1:df258d25fd8a 284 /** It sets the Emissivity correction coefficient.
mcm 1:df258d25fd8a 285 */
mcm 3:6a5b6fcff28e 286 MLX90614_status_t MLX90614_SetEmissivity ( MLX90614_vector_data_t myEmissivity );
mcm 1:df258d25fd8a 287
mcm 1:df258d25fd8a 288 /** It gets the IIR.
mcm 1:df258d25fd8a 289 */
mcm 3:6a5b6fcff28e 290 MLX90614_status_t MLX90614_GetIIR ( MLX90614_vector_data_t* myIIR );
mcm 1:df258d25fd8a 291
mcm 1:df258d25fd8a 292 /** It sets the IIR.
mcm 1:df258d25fd8a 293 */
mcm 3:6a5b6fcff28e 294 MLX90614_status_t MLX90614_SetIIR ( MLX90614_configregister1_iir_t myIIR );
mcm 3:6a5b6fcff28e 295
mcm 3:6a5b6fcff28e 296 /** It gets the Temperature Source.
mcm 3:6a5b6fcff28e 297 */
mcm 3:6a5b6fcff28e 298 MLX90614_status_t MLX90614_GetTemperatureSource ( MLX90614_vector_data_t* myTempSource );
mcm 3:6a5b6fcff28e 299
mcm 3:6a5b6fcff28e 300 /** It sets the Temperature Source.
mcm 3:6a5b6fcff28e 301 */
mcm 3:6a5b6fcff28e 302 MLX90614_status_t MLX90614_SetTemperatureSource ( MLX90614_configregister1_temp_t myTempSource );
mcm 1:df258d25fd8a 303
mcm 1:df258d25fd8a 304 /** It gets the FLAGS.
mcm 1:df258d25fd8a 305 */
mcm 3:6a5b6fcff28e 306 MLX90614_status_t MLX90614_GetFLAGS ( MLX90614_vector_data_t* myFlags );
mcm 1:df258d25fd8a 307
mcm 1:df258d25fd8a 308
mcm 1:df258d25fd8a 309
mcm 1:df258d25fd8a 310
mcm 1:df258d25fd8a 311 private:
mcm 1:df258d25fd8a 312 I2C _i2c;
mcm 1:df258d25fd8a 313 uint32_t _MLX90614_Addr;
mcm 1:df258d25fd8a 314 };
mcm 1:df258d25fd8a 315
mcm 1:df258d25fd8a 316 #endif