Hello code for "Switch Science mbed LPC824"
Fork of SwitchSciencembedLPC824_test by
main.cpp@0:f947ed831c67, 2014-11-03 (annotated)
- Committer:
- okano
- Date:
- Mon Nov 03 00:03:55 2014 +0000
- Revision:
- 0:f947ed831c67
- Child:
- 1:3c29c04cfeb2
very basic code for hardware verification
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
okano | 0:f947ed831c67 | 1 | #include "mbed.h" |
okano | 0:f947ed831c67 | 2 | |
okano | 0:f947ed831c67 | 3 | // LM75B I2C slave address |
okano | 0:f947ed831c67 | 4 | #define ADDRESS_LM75B 0x90 |
okano | 0:f947ed831c67 | 5 | |
okano | 0:f947ed831c67 | 6 | // LM75B registers |
okano | 0:f947ed831c67 | 7 | #define LM75B_Conf 0x01 |
okano | 0:f947ed831c67 | 8 | #define LM75B_Temp 0x00 |
okano | 0:f947ed831c67 | 9 | #define LM75B_Tos 0x03 |
okano | 0:f947ed831c67 | 10 | #define LM75B_Thyst 0x02 |
okano | 0:f947ed831c67 | 11 | |
okano | 0:f947ed831c67 | 12 | I2C i2c( p28, p27 ); |
okano | 0:f947ed831c67 | 13 | |
okano | 0:f947ed831c67 | 14 | void init( void ); |
okano | 0:f947ed831c67 | 15 | float read_temp( void ); |
okano | 0:f947ed831c67 | 16 | |
okano | 0:f947ed831c67 | 17 | |
okano | 0:f947ed831c67 | 18 | int main() |
okano | 0:f947ed831c67 | 19 | { |
okano | 0:f947ed831c67 | 20 | init(); |
okano | 0:f947ed831c67 | 21 | |
okano | 0:f947ed831c67 | 22 | while(1) { |
okano | 0:f947ed831c67 | 23 | printf( "temp = %7.3f\r\n", read_temp() ); |
okano | 0:f947ed831c67 | 24 | wait( 1 ); |
okano | 0:f947ed831c67 | 25 | } |
okano | 0:f947ed831c67 | 26 | } |
okano | 0:f947ed831c67 | 27 | |
okano | 0:f947ed831c67 | 28 | void init( void ) |
okano | 0:f947ed831c67 | 29 | { |
okano | 0:f947ed831c67 | 30 | char command[ 2 ]; |
okano | 0:f947ed831c67 | 31 | |
okano | 0:f947ed831c67 | 32 | command[ 0 ] = LM75B_Conf; |
okano | 0:f947ed831c67 | 33 | command[ 1 ] = 0x00; |
okano | 0:f947ed831c67 | 34 | |
okano | 0:f947ed831c67 | 35 | i2c.write( ADDRESS_LM75B, command, 2 ); |
okano | 0:f947ed831c67 | 36 | } |
okano | 0:f947ed831c67 | 37 | |
okano | 0:f947ed831c67 | 38 | float read_temp( void ) |
okano | 0:f947ed831c67 | 39 | { |
okano | 0:f947ed831c67 | 40 | char command[ 2 ]; |
okano | 0:f947ed831c67 | 41 | |
okano | 0:f947ed831c67 | 42 | command[ 0 ] = LM75B_Temp; |
okano | 0:f947ed831c67 | 43 | |
okano | 0:f947ed831c67 | 44 | i2c.write( ADDRESS_LM75B, command, 1 ); // Send command string |
okano | 0:f947ed831c67 | 45 | i2c.read( ADDRESS_LM75B, command, 2 ); // read two bytes data |
okano | 0:f947ed831c67 | 46 | |
okano | 0:f947ed831c67 | 47 | return ( (float)( (command[ 0 ] << 8)| command[1] ) / 256.0 ); |
okano | 0:f947ed831c67 | 48 | } |