Hello code for "Switch Science mbed LPC824"

Dependencies:   mbed

Fork of SwitchSciencembedLPC824_test by Mako SHIMURA

Committer:
asagin
Date:
Thu Dec 18 03:20:52 2014 +0000
Revision:
9:e2333773718f
Erased comment

Who changed what in which revision?

UserRevisionLine numberNew contents of line
asagin 9:e2333773718f 1 /*
asagin 9:e2333773718f 2 * I2C digital temperature sensor "LM75B" library
asagin 9:e2333773718f 3 *
asagin 9:e2333773718f 4 * LM75B is an I2C based digital temperature sensor
asagin 9:e2333773718f 5 * http://www.nxp.com/pip/LM75B_2.html
asagin 9:e2333773718f 6 *
asagin 9:e2333773718f 7 * This is a library to operate this chip easy.
asagin 9:e2333773718f 8 *
asagin 9:e2333773718f 9 * Copyright (c) 2010 Tedd OKANO
asagin 9:e2333773718f 10 * Released under the MIT License: http://mbed.org/license/mit
asagin 9:e2333773718f 11 *
asagin 9:e2333773718f 12 * revision 1.0 16-Jan-2010 a. 1st release
asagin 9:e2333773718f 13 * revision 1.1 23-Jan-2010 a. class name has been changed from LM75B to TempSensor_LM75B
asagin 9:e2333773718f 14 * b. copyright notice added
asagin 9:e2333773718f 15 */
asagin 9:e2333773718f 16
asagin 9:e2333773718f 17 #ifndef MBED_TempSensor_LM75B
asagin 9:e2333773718f 18 #define MBED_TempSensor_LM75B
asagin 9:e2333773718f 19
asagin 9:e2333773718f 20
asagin 9:e2333773718f 21 #include "mbed.h"
asagin 9:e2333773718f 22 #include "I2cBusDevice.h"
asagin 9:e2333773718f 23
asagin 9:e2333773718f 24
asagin 9:e2333773718f 25 // LM75B IIC address
asagin 9:e2333773718f 26 const char LM75B_base_addr = 0x90;
asagin 9:e2333773718f 27
asagin 9:e2333773718f 28 // LM75B registers
asagin 9:e2333773718f 29 const char Conf = 0x01;
asagin 9:e2333773718f 30 const char Temp = 0x00;
asagin 9:e2333773718f 31 const char Tos = 0x03;
asagin 9:e2333773718f 32 const char Thyst = 0x02;
asagin 9:e2333773718f 33
asagin 9:e2333773718f 34
asagin 9:e2333773718f 35 class TempSensor_LM75B : I2cBusDevice {
asagin 9:e2333773718f 36 public:
asagin 9:e2333773718f 37
asagin 9:e2333773718f 38 TempSensor_LM75B( I2C *i2c, char dev_address = LM75B_base_addr, char vConf = 0x00, short vTos = 0x5000, short vThyst = 0x4B00 ) : I2cBusDevice( i2c, dev_address ) {
asagin 9:e2333773718f 39 char data[ 3 ];
asagin 9:e2333773718f 40
asagin 9:e2333773718f 41 data[ 0 ] = Conf;
asagin 9:e2333773718f 42 data[ 1 ] = vConf;
asagin 9:e2333773718f 43
asagin 9:e2333773718f 44 if ( write( data, 2 ) )
asagin 9:e2333773718f 45 ;
asagin 9:e2333773718f 46
asagin 9:e2333773718f 47 data[ 0 ] = Tos;
asagin 9:e2333773718f 48 data[ 1 ] = (char)(vTos >> 8);
asagin 9:e2333773718f 49 data[ 2 ] = (char)vTos;
asagin 9:e2333773718f 50
asagin 9:e2333773718f 51 if ( write( data, 3 ) )
asagin 9:e2333773718f 52 ;
asagin 9:e2333773718f 53
asagin 9:e2333773718f 54 data[ 0 ] = Thyst;
asagin 9:e2333773718f 55 data[ 1 ] = (char)(vThyst >> 8);
asagin 9:e2333773718f 56 data[ 2 ] = (char)vThyst;
asagin 9:e2333773718f 57
asagin 9:e2333773718f 58 if ( write( data, 3 ) )
asagin 9:e2333773718f 59 ;
asagin 9:e2333773718f 60 }
asagin 9:e2333773718f 61
asagin 9:e2333773718f 62 ~TempSensor_LM75B() {
asagin 9:e2333773718f 63 }
asagin 9:e2333773718f 64
asagin 9:e2333773718f 65 int temp_short( void ) {
asagin 9:e2333773718f 66 char data[ 2 ];
asagin 9:e2333773718f 67
asagin 9:e2333773718f 68 if ( read( Temp, data, 2 ) )
asagin 9:e2333773718f 69 return ( 1e6 );
asagin 9:e2333773718f 70
asagin 9:e2333773718f 71 return ( (((short)data[ 0 ]) << 8 | data[ 1 ]) >> 5 );
asagin 9:e2333773718f 72 }
asagin 9:e2333773718f 73
asagin 9:e2333773718f 74 float temp( void ) {
asagin 9:e2333773718f 75 return ( (float)(temp_short()) / 8.0 );
asagin 9:e2333773718f 76 }
asagin 9:e2333773718f 77
asagin 9:e2333773718f 78 operator float( void ) {
asagin 9:e2333773718f 79 return( temp() );
asagin 9:e2333773718f 80 }
asagin 9:e2333773718f 81
asagin 9:e2333773718f 82 #if 0
asagin 9:e2333773718f 83 operator short( void ) {
asagin 9:e2333773718f 84 return( temp_short() );
asagin 9:e2333773718f 85 }
asagin 9:e2333773718f 86 #endif
asagin 9:e2333773718f 87
asagin 9:e2333773718f 88
asagin 9:e2333773718f 89
asagin 9:e2333773718f 90 private:
asagin 9:e2333773718f 91 }
asagin 9:e2333773718f 92 ;
asagin 9:e2333773718f 93
asagin 9:e2333773718f 94 #endif