C++ file for display control
Dependencies: 4DGL mbed ConfigFile
Fork of 4DGLtest by
temperature.cpp@6:904d00252480, 2014-07-01 (annotated)
- Committer:
- WillemBraat
- Date:
- Tue Jul 01 13:27:43 2014 +0000
- Revision:
- 6:904d00252480
- Child:
- 7:779c5b8d3b14
Added structure scanner
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
WillemBraat | 6:904d00252480 | 1 | #include "mbed.h" |
WillemBraat | 6:904d00252480 | 2 | |
WillemBraat | 6:904d00252480 | 3 | |
WillemBraat | 6:904d00252480 | 4 | |
WillemBraat | 6:904d00252480 | 5 | // Read temperature from LM75BD |
WillemBraat | 6:904d00252480 | 6 | |
WillemBraat | 6:904d00252480 | 7 | //I2C i2c(p28, p27);//use same pins as KBD |
WillemBraat | 6:904d00252480 | 8 | |
WillemBraat | 6:904d00252480 | 9 | extern I2C CDU_I2C; //I2C bus for keyboard/temp chip. Defined in keyboard.cpp |
WillemBraat | 6:904d00252480 | 10 | const int addr = 0x90; //Default hardware address of LM75B chip |
WillemBraat | 6:904d00252480 | 11 | |
WillemBraat | 6:904d00252480 | 12 | float CDU_GetTemp() { |
WillemBraat | 6:904d00252480 | 13 | char cmd[2]; |
WillemBraat | 6:904d00252480 | 14 | |
WillemBraat | 6:904d00252480 | 15 | //Init LM75B |
WillemBraat | 6:904d00252480 | 16 | cmd[0] = 0x01; //Pointer byte (0x01=configuration register) |
WillemBraat | 6:904d00252480 | 17 | cmd[1] = 0x00; //Configuration byte (0x00=normal configuration) |
WillemBraat | 6:904d00252480 | 18 | CDU_I2C.write(addr, cmd, 2); //Write bytes to bus |
WillemBraat | 6:904d00252480 | 19 | |
WillemBraat | 6:904d00252480 | 20 | //Read temperature |
WillemBraat | 6:904d00252480 | 21 | cmd[0] = 0x00; //Pointer byte (0x00=temperature register) |
WillemBraat | 6:904d00252480 | 22 | CDU_I2C.write(addr, cmd, 1); //write to device |
WillemBraat | 6:904d00252480 | 23 | CDU_I2C.read(addr, cmd, 2); //read temperature 2 data bytes |
WillemBraat | 6:904d00252480 | 24 | |
WillemBraat | 6:904d00252480 | 25 | /* |
WillemBraat | 6:904d00252480 | 26 | Convert from 2's complement to Degrees Celsius |
WillemBraat | 6:904d00252480 | 27 | 1. If the Temp data MSByte bit D10 = 0, then the temperature is positive and Temp value (C) = +(Temp data) x 0.125 C. |
WillemBraat | 6:904d00252480 | 28 | 2. If the Temp data MSByte bit D10 = 1, then the temperature is negative and Temp value (C) = (two’s complement of Temp data) x 0.125 C. |
WillemBraat | 6:904d00252480 | 29 | */ |
WillemBraat | 6:904d00252480 | 30 | float tmp = (float((cmd[0]<<8)|cmd[1]) / 256.0); |
WillemBraat | 6:904d00252480 | 31 | return ( tmp ); |
WillemBraat | 6:904d00252480 | 32 | } |