C++ file for display control
Dependencies: 4DGL mbed ConfigFile
Fork of 4DGLtest by
temperature.cpp@11:a5b0d98794c0, 2014-07-16 (annotated)
- Committer:
- WillemBraat
- Date:
- Wed Jul 16 19:15:40 2014 +0000
- Revision:
- 11:a5b0d98794c0
- Parent:
- 9:311b6676272d
Rewritten function CDU_DSP_CSS()
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
WillemBraat | 6:904d00252480 | 1 | #include "mbed.h" |
WillemBraat | 9:311b6676272d | 2 | #include "temperature.h" |
WillemBraat | 6:904d00252480 | 3 | |
WillemBraat | 6:904d00252480 | 4 | // Read temperature from LM75BD |
WillemBraat | 6:904d00252480 | 5 | |
WillemBraat | 9:311b6676272d | 6 | extern I2C CDU_I2C; //I2C bus on i2c(p28, p27) for keyboard/temp chip. Defined in keyboard.cpp |
WillemBraat | 9:311b6676272d | 7 | const int CDU_TMP_ADRS = 0x90; //Default hardware address of LM75B chip |
WillemBraat | 6:904d00252480 | 8 | |
WillemBraat | 6:904d00252480 | 9 | float CDU_GetTemp() { |
WillemBraat | 6:904d00252480 | 10 | char cmd[2]; |
WillemBraat | 6:904d00252480 | 11 | |
WillemBraat | 6:904d00252480 | 12 | //Init LM75B |
WillemBraat | 9:311b6676272d | 13 | cmd[0] = REG_CONFIG; //Pointer byte (0x01=configuration register) |
WillemBraat | 9:311b6676272d | 14 | cmd[1] = CONFIG_NORMAL; //Configuration byte (0x00=normal configuration) |
WillemBraat | 9:311b6676272d | 15 | CDU_I2C.write(CDU_TMP_ADRS, cmd, 2); //Write bytes to bus |
WillemBraat | 6:904d00252480 | 16 | |
WillemBraat | 6:904d00252480 | 17 | //Read temperature |
WillemBraat | 9:311b6676272d | 18 | cmd[0] = REG_TEMP; //Pointer byte (0x00=temperature register) |
WillemBraat | 9:311b6676272d | 19 | CDU_I2C.write(CDU_TMP_ADRS, cmd, 1); //write to device |
WillemBraat | 9:311b6676272d | 20 | CDU_I2C.read(CDU_TMP_ADRS, cmd, 2); //read temperature 2 data bytes |
WillemBraat | 6:904d00252480 | 21 | |
WillemBraat | 6:904d00252480 | 22 | /* |
WillemBraat | 6:904d00252480 | 23 | Convert from 2's complement to Degrees Celsius |
WillemBraat | 6:904d00252480 | 24 | 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 | 25 | 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 | 26 | */ |
WillemBraat | 6:904d00252480 | 27 | float tmp = (float((cmd[0]<<8)|cmd[1]) / 256.0); |
WillemBraat | 6:904d00252480 | 28 | return ( tmp ); |
WillemBraat | 6:904d00252480 | 29 | } |
WillemBraat | 9:311b6676272d | 30 |