M. Artić, I. Družin
Dependencies: mbed
main.cpp
- Committer:
- idruzin
- Date:
- 2017-01-25
- Revision:
- 0:7fecc14decbf
File content as of revision 0:7fecc14decbf:
#include "mbed.h" #include "math.h" I2C MSP430G(p9, p10); //sda, sc1 Serial pc(USBTX, USBRX); //tx, rx const int addr = 0x92; char config_t[2]; // transmitt buffer char temp_read[2]; // read buffer float temp; int temp_int; char BOByte(int temp); int main() { config_t[0] = 0xC0; //config slave to int temp config_t[1] = 0xFF; // config data byte1, BOut while(1) { MSP430G.write(addr, config_t, 2); wait_us(20); MSP430G.read(addr, temp_read, 2); //read the two-byte temp data temp = temp_read[0]+temp_read[1]*256; temp = temp / 10; temp_int = ceil (temp); // float to integer, round to upper if ( temp_int >= 20 || temp_int <= 35) { config_t[1] = BOByte(temp_int); // config data byte1, BusOut pc.printf("Temp = %.1f degC\n\r", temp); // print on screen } else { config_t[1] = 0x00; // config data byte1, BOut pc.printf("Izmjerena temperatura je izvan mjernog opsega\n\r"); // print on screen } wait(1); } } char BOByte(int temp) { char BOut; switch(temp) { case 20: BOut = 0x01; break; case 21: BOut = 0x01; break; case 22: BOut = 0x03; break; case 23: BOut = 0x03; break; case 24: BOut = 0x07; break; case 25: BOut = 0x07; break; case 26: BOut = 0x0F; break; case 27: BOut = 0x0F; break; case 28: BOut = 0x1F; break; case 29: BOut = 0x1F; break; case 30: BOut = 0x3F; break; case 31: BOut = 0x3F; break; case 32: BOut = 0x7F; break; case 33: BOut = 0x7F; break; case 34: BOut = 0xFF; break; case 35: BOut = 0xFF; break; default: BOut = 0x00; } return BOut; // config data byte1, BOut }