example project to explain how to write a class library
test_LM75B.cpp@7:9a7235e5fe27, 2014-11-11 (annotated)
- Committer:
- okano
- Date:
- Tue Nov 11 00:41:14 2014 +0000
- Revision:
- 7:9a7235e5fe27
- Parent:
- 5:863659ef0231
??????????????????
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
okano | 0:6ecb302da815 | 1 | #include "test_LM75B.h" |
okano | 0:6ecb302da815 | 2 | |
okano | 5:863659ef0231 | 3 | test_LM75B::test_LM75B( PinName sda, PinName scl, char address ) |
okano | 5:863659ef0231 | 4 | : i2c_p( new I2C( sda, scl ) ), i2c( *i2c_p ), adr( address ) |
okano | 5:863659ef0231 | 5 | { |
okano | 5:863659ef0231 | 6 | init(); |
okano | 5:863659ef0231 | 7 | } |
okano | 5:863659ef0231 | 8 | |
okano | 5:863659ef0231 | 9 | test_LM75B::test_LM75B( I2C &i2c_obj, char address ) |
okano | 5:863659ef0231 | 10 | : i2c_p( NULL ), i2c( i2c_obj ), adr( address ) |
okano | 0:6ecb302da815 | 11 | { |
okano | 0:6ecb302da815 | 12 | init(); |
okano | 0:6ecb302da815 | 13 | } |
okano | 0:6ecb302da815 | 14 | |
okano | 0:6ecb302da815 | 15 | test_LM75B::~test_LM75B() |
okano | 0:6ecb302da815 | 16 | { |
okano | 5:863659ef0231 | 17 | if ( NULL != i2c_p ) |
okano | 5:863659ef0231 | 18 | delete i2c_p; |
okano | 0:6ecb302da815 | 19 | } |
okano | 0:6ecb302da815 | 20 | |
okano | 0:6ecb302da815 | 21 | void test_LM75B::init( void ) |
okano | 0:6ecb302da815 | 22 | { |
okano | 0:6ecb302da815 | 23 | char command[ 2 ]; |
okano | 0:6ecb302da815 | 24 | |
okano | 0:6ecb302da815 | 25 | command[ 0 ] = LM75B_Conf; |
okano | 0:6ecb302da815 | 26 | command[ 1 ] = 0x00; |
okano | 0:6ecb302da815 | 27 | |
okano | 1:239684cd8ae9 | 28 | i2c.write( adr, command, 2 ); |
okano | 0:6ecb302da815 | 29 | } |
okano | 0:6ecb302da815 | 30 | |
okano | 0:6ecb302da815 | 31 | float test_LM75B::read( void ) |
okano | 0:6ecb302da815 | 32 | { |
okano | 0:6ecb302da815 | 33 | char command[ 2 ]; |
okano | 0:6ecb302da815 | 34 | |
okano | 0:6ecb302da815 | 35 | command[ 0 ] = LM75B_Temp; |
okano | 0:6ecb302da815 | 36 | |
okano | 1:239684cd8ae9 | 37 | i2c.write( adr, command, 1 ); // Send command string |
okano | 1:239684cd8ae9 | 38 | i2c.read( adr, command, 2 ); // read two bytes data |
okano | 0:6ecb302da815 | 39 | |
okano | 0:6ecb302da815 | 40 | return ( (float)( (command[ 0 ] << 8)| command[1] ) / 256.0 ); |
okano | 0:6ecb302da815 | 41 | } |
okano | 0:6ecb302da815 | 42 | |
okano | 1:239684cd8ae9 | 43 | test_LM75B::operator float( void ) |
okano | 1:239684cd8ae9 | 44 | { |
okano | 1:239684cd8ae9 | 45 | return( read() ); |
okano | 1:239684cd8ae9 | 46 | } |