C++ file for display control

Dependencies:   4DGL mbed ConfigFile

Fork of 4DGLtest by Stephane ROCHON

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?

UserRevisionLine numberNew 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 }