Hello world code for PCT2075 and LM75B component class library. The PCT2075 is a temperature-to-digital converter featuring +/-1 degree-C accuracy over -25 degree-C to +100 degree-C range. It uses an on-chip band gap temperature sensor and Sigma-Delta A-to-D conversion technique with an overtemperature detection output that is a drop-in replacement for other LM75 series thermal sensors.
PCT2075/base_class/I2CTempSensor.cpp
- Committer:
- okano
- Date:
- 2015-02-27
- Revision:
- 0:3c3d4c5ac8e9
- Child:
- 1:5398b0799e20
File content as of revision 0:3c3d4c5ac8e9:
#include "I2CTempSensor.h"
I2CTempSensor::I2CTempSensor( PinName i2c_sda, PinName i2c_scl, char address )
: i2c_p( new I2C( i2c_sda, i2c_scl ) ), i2c( *i2c_p ), adr( address )
{
init();
}
I2CTempSensor::I2CTempSensor( I2C &i2c_obj, char address )
: i2c_p( NULL ), i2c( i2c_obj ), adr( address )
{
init();
}
I2CTempSensor::~I2CTempSensor()
{
if ( NULL != i2c_p )
delete i2c_p;
}
void I2CTempSensor::init( void )
{
char command[ 2 ];
command[ 0 ] = LM75B_Conf;
command[ 1 ] = 0x00;
i2c.write( adr, command, 2 );
}
short I2CTempSensor::read( void )
{
char command[ 2 ];
command[ 0 ] = LM75B_Temp;
i2c.write( adr, command, 1 ); // Send command string
i2c.read( adr, command, 2 ); // read two bytes data
return ( (command[ 0 ] << 8)| command[1] );
}