/* * ds75.h * * Created on: Aug 1, 2012 * Author: tkl */ #ifndef DS75_H_ #define DS75_H_ #include #include "i2c.h" //----------------------------------------------------------------------------- enum ds75_precision { DS_75_PRECISION_9_BIT = 0, DS_75_PRECISION_10_BIT, DS_75_PRECISION_11_BIT, DS_75_PRECISION_12_BIT, DS_75_PRECISION_INVALID }; //----------------------------------------------------------------------------- //! \brief The ds75 driver object. struct ds75 { const struct i2c * i2c; //!< The i2c device the ds75 is connected to. const char i2c_slave_addr; //!< The i2c slave address of the ds 75. char *const config_value; //!< Config value. }; //----------------------------------------------------------------------------- //! \brief Data container for the ds 75 measurement result. struct ds75_temperature { short temperature; //!< Calculated temperature. char raw[2]; //!< Raw i2c result. bool valid; //!< Validity indicator. }; //----------------------------------------------------------------------------- int ds75_open(const struct ds75 *device); int ds75_close(const struct ds75 *device); int ds75_set_precision(const struct ds75 *device, enum ds75_precision precision); enum ds75_precision ds_75_get_precision(const struct ds75 *device); int ds_75_shut_down(const struct ds75 *device); int ds_75_wakeup(const struct ds75 *device); struct ds75_temperature ds_75_get_temperature(const struct ds75 *device); #endif /* DS75_H_ */