POC1.5 prototype 2 x color sensor 2 x LM75B 3 x AnalogIn 1 x accel

Dependencies:   mbed vt100

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers LM75B.h Source File

LM75B.h

00001 #ifndef _LM75B_H_
00002 #define _LM75B_H_
00003 
00004 #include "mbed.h"
00005 
00006 /**
00007 * NXP LM75B Digital temperature sensor and thermal watchdog
00008 *
00009 * @code
00010 #include "mbed.h"
00011 #include "LM75B.h"
00012 #define LM75B_I2C_ADDRESS (0x48)
00013 
00014 #if defined (TARGET_KL25Z)
00015 #define PIN_SCL  PTE1
00016 #define PIN_SDA  PTE0
00017 #elif defined (TARGET_KL46Z)
00018 #define PIN_SCL  PTE1
00019 #define PIN_SDA  PTE0
00020 #elif defined (TARGET_K64F)
00021 #define PIN_SCL  PTE24
00022 #define PIN_SDA  PTE25
00023 #elif defined (TARGET_K22F)
00024 #define PIN_SCL  PTE1
00025 #define PIN_SDA  PTE0
00026 #elif defined (TARGET_KL05Z)
00027 #define PIN_SCL  PTB3
00028 #define PIN_SDA  PTB4
00029 #elif defined (TARGET_NUCLEO_F411RE)
00030 #define PIN_SCL  PB_8
00031 #define PIN_SDA  PB_9
00032 #else
00033  #error TARGET NOT DEFINED
00034 #endif
00035 
00036 int main() {
00037     int8_t itemp = 0 ;
00038     float ftemp = 0.0 ;
00039     LM75B lm75b(PIN_SDA, PIN_SCL, LM75B_I2C_ADDRESS) ;
00040     
00041     while(1) {
00042         itemp = lm75b.temp() ;
00043         lm75b.getTemp(&ftemp) ;
00044         printf("Temp = %d C degree,  %.3f C degree\n", itemp, ftemp) ;
00045         wait(1) ;
00046     }
00047 }
00048 * @endcode
00049 */
00050 class LM75B
00051 {
00052 public:
00053   /**
00054   * LM75B constructor
00055   *
00056   * @param i2c pointer to the I2C object
00057   * @param addr addr of the I2C peripheral
00058   */
00059   LM75B(I2C *i2c, int addr);
00060 
00061   /**
00062   * LM75B destructor
00063   */
00064   ~LM75B();
00065 
00066   /**
00067   * get temperature as one byte (signed)
00068   */
00069   int8_t temp(void) ;
00070   
00071   /**
00072    * get temperature as 11 bit (float)
00073    */
00074   void getTemp(float *temp) ;
00075   
00076   /**
00077    * get configuration register
00078    */
00079   uint8_t getConfig(uint8_t ptr_byte) ;
00080   
00081   /**
00082    * set configuration register
00083    */
00084   int setConfig(uint8_t ptr_byte, uint8_t config_data) ;
00085 
00086 private:
00087   I2C *p_i2c;
00088   int m_addr;
00089   int readRegs(int addr, uint8_t * data, int len);
00090   int writeRegs(uint8_t * data, int len);
00091 
00092 };
00093 
00094 #endif