library for ADT7410 temperature sensor first version

Committer:
igbt6
Date:
Sat Apr 26 18:12:59 2014 +0000
Revision:
1:131a836c6b79
Parent:
0:204e0aff1242
Child:
2:d12dffd027a8
first attempts of building adt7410 library

Who changed what in which revision?

UserRevisionLine numberNew contents of line
igbt6 1:131a836c6b79 1 /*
igbt6 1:131a836c6b79 2 @file adt7410.h
igbt6 1:131a836c6b79 3
igbt6 1:131a836c6b79 4 @brief Temperature Sensor ADT7410 Breakout I2C Library
igbt6 1:131a836c6b79 5
igbt6 1:131a836c6b79 6 @Author lukasz uszko(luszko@op.pl)
igbt6 1:131a836c6b79 7
igbt6 1:131a836c6b79 8 Tested on FRDM-KL46Z
igbt6 1:131a836c6b79 9
igbt6 1:131a836c6b79 10 Copyright (c) 2014 luszko
igbt6 1:131a836c6b79 11 Released under the MIT License (see http://mbed.org/license/mit)
igbt6 1:131a836c6b79 12
igbt6 1:131a836c6b79 13 Documentation regarding the ADT7410 can be found here:
igbt6 1:131a836c6b79 14 http://www.analog.com/static/imported-files/data_sheets/ADT7410.pdf
igbt6 1:131a836c6b79 15 */
igbt6 1:131a836c6b79 16
igbt6 1:131a836c6b79 17
igbt6 1:131a836c6b79 18
igbt6 1:131a836c6b79 19 #ifndef ADT7410_H
igbt6 1:131a836c6b79 20 #define ADT7410_H
igbt6 1:131a836c6b79 21
igbt6 1:131a836c6b79 22 #include "mbed.h"
igbt6 1:131a836c6b79 23
igbt6 1:131a836c6b79 24
igbt6 1:131a836c6b79 25 #define ADT7410_I2C_ADDRESS 0x4B //A0 and A1 PIN are conected to VDD
igbt6 1:131a836c6b79 26
igbt6 1:131a836c6b79 27
igbt6 1:131a836c6b79 28
igbt6 1:131a836c6b79 29 class ADT7410{
igbt6 1:131a836c6b79 30
igbt6 1:131a836c6b79 31 public:
igbt6 1:131a836c6b79 32
igbt6 1:131a836c6b79 33 /** Create an ADT7410 instance
igbt6 1:131a836c6b79 34 * @param sda pin
igbt6 1:131a836c6b79 35 * @param scl pin
igbt6 1:131a836c6b79 36 * @param address: I2C slave address
igbt6 1:131a836c6b79 37 */
igbt6 1:131a836c6b79 38 ADT7410(PinName sda, PinName scl, int address = ADT7410_I2C_ADDRESS);
igbt6 1:131a836c6b79 39
igbt6 1:131a836c6b79 40 /** Create a ADT7410 instance
igbt6 1:131a836c6b79 41 * @param i2c object
igbt6 1:131a836c6b79 42 * @param address: I2C slave address
igbt6 1:131a836c6b79 43 */
igbt6 1:131a836c6b79 44 ADT7410(I2C& i2c, int address = ADT7410_I2C_ADDRESS);
igbt6 1:131a836c6b79 45
igbt6 1:131a836c6b79 46 /** Initialization: set member values and read ADT7410 calibration parameter
igbt6 1:131a836c6b79 47 * @returns
igbt6 1:131a836c6b79 48 * 1 on success,
igbt6 1:131a836c6b79 49 * 0 on error
igbt6 1:131a836c6b79 50 */
igbt6 1:131a836c6b79 51 int init(void );
igbt6 1:131a836c6b79 52
igbt6 1:131a836c6b79 53 /** Read temperature from the ADT7410.
igbt6 1:131a836c6b79 54 * @param temperature (C)
igbt6 1:131a836c6b79 55 * @returns
igbt6 1:131a836c6b79 56 * 1 on success,
igbt6 1:131a836c6b79 57 * 0 on error
igbt6 1:131a836c6b79 58 */
igbt6 1:131a836c6b79 59 int readTemp(float* pTemperature = NULL);
igbt6 1:131a836c6b79 60
igbt6 1:131a836c6b79 61 /** Get temperature from a previous measurement
igbt6 1:131a836c6b79 62 *
igbt6 1:131a836c6b79 63 * @returns
igbt6 1:131a836c6b79 64 * temperature (C)
igbt6 1:131a836c6b79 65 */
igbt6 1:131a836c6b79 66 float getTemperature() {return m_temperature;};
igbt6 1:131a836c6b79 67
igbt6 1:131a836c6b79 68
igbt6 1:131a836c6b79 69 protected:
igbt6 1:131a836c6b79 70
igbt6 1:131a836c6b79 71 float m_temperature;
igbt6 1:131a836c6b79 72 I2C m_i2c;
igbt6 1:131a836c6b79 73 int m_addr;
igbt6 1:131a836c6b79 74 char m_data[4];
igbt6 1:131a836c6b79 75
igbt6 1:131a836c6b79 76 private:
igbt6 1:131a836c6b79 77
igbt6 1:131a836c6b79 78 /** Write data to the given register
igbt6 1:131a836c6b79 79 *
igbt6 1:131a836c6b79 80 * @returns
igbt6 1:131a836c6b79 81 * 1 on success,
igbt6 1:131a836c6b79 82 * 0 on error
igbt6 1:131a836c6b79 83 */
igbt6 1:131a836c6b79 84 bool write(uint8_t regAddress, uint8_t data);
igbt6 1:131a836c6b79 85
igbt6 1:131a836c6b79 86 int read(uint8_t regAddress);
igbt6 1:131a836c6b79 87
igbt6 1:131a836c6b79 88 int read(uint8_t regAddress, uint8_t* data,int length);
igbt6 1:131a836c6b79 89
igbt6 1:131a836c6b79 90
igbt6 1:131a836c6b79 91
igbt6 1:131a836c6b79 92
igbt6 1:131a836c6b79 93 };
igbt6 1:131a836c6b79 94
igbt6 1:131a836c6b79 95 #endif