M. Artić, I. Družin

Dependencies:   mbed

Committer:
idruzin
Date:
Wed Jan 25 18:04:27 2017 +0000
Revision:
0:7fecc14decbf
Projektni zadatak 10

Who changed what in which revision?

UserRevisionLine numberNew contents of line
idruzin 0:7fecc14decbf 1 #include "mbed.h"
idruzin 0:7fecc14decbf 2 #include "math.h"
idruzin 0:7fecc14decbf 3
idruzin 0:7fecc14decbf 4 I2C MSP430G(p9, p10); //sda, sc1
idruzin 0:7fecc14decbf 5 Serial pc(USBTX, USBRX); //tx, rx
idruzin 0:7fecc14decbf 6
idruzin 0:7fecc14decbf 7 const int addr = 0x92;
idruzin 0:7fecc14decbf 8 char config_t[2]; // transmitt buffer
idruzin 0:7fecc14decbf 9 char temp_read[2]; // read buffer
idruzin 0:7fecc14decbf 10 float temp;
idruzin 0:7fecc14decbf 11 int temp_int;
idruzin 0:7fecc14decbf 12
idruzin 0:7fecc14decbf 13 char BOByte(int temp);
idruzin 0:7fecc14decbf 14
idruzin 0:7fecc14decbf 15
idruzin 0:7fecc14decbf 16 int main()
idruzin 0:7fecc14decbf 17 {
idruzin 0:7fecc14decbf 18 config_t[0] = 0xC0; //config slave to int temp
idruzin 0:7fecc14decbf 19 config_t[1] = 0xFF; // config data byte1, BOut
idruzin 0:7fecc14decbf 20
idruzin 0:7fecc14decbf 21 while(1) {
idruzin 0:7fecc14decbf 22
idruzin 0:7fecc14decbf 23
idruzin 0:7fecc14decbf 24 MSP430G.write(addr, config_t, 2);
idruzin 0:7fecc14decbf 25
idruzin 0:7fecc14decbf 26 wait_us(20);
idruzin 0:7fecc14decbf 27
idruzin 0:7fecc14decbf 28 MSP430G.read(addr, temp_read, 2); //read the two-byte temp data
idruzin 0:7fecc14decbf 29
idruzin 0:7fecc14decbf 30 temp = temp_read[0]+temp_read[1]*256;
idruzin 0:7fecc14decbf 31 temp = temp / 10;
idruzin 0:7fecc14decbf 32
idruzin 0:7fecc14decbf 33 temp_int = ceil (temp); // float to integer, round to upper
idruzin 0:7fecc14decbf 34
idruzin 0:7fecc14decbf 35 if ( temp_int >= 20 || temp_int <= 35) {
idruzin 0:7fecc14decbf 36
idruzin 0:7fecc14decbf 37 config_t[1] = BOByte(temp_int); // config data byte1, BusOut
idruzin 0:7fecc14decbf 38
idruzin 0:7fecc14decbf 39 pc.printf("Temp = %.1f degC\n\r", temp); // print on screen
idruzin 0:7fecc14decbf 40 } else {
idruzin 0:7fecc14decbf 41
idruzin 0:7fecc14decbf 42 config_t[1] = 0x00; // config data byte1, BOut
idruzin 0:7fecc14decbf 43
idruzin 0:7fecc14decbf 44 pc.printf("Izmjerena temperatura je izvan mjernog opsega\n\r"); // print on screen
idruzin 0:7fecc14decbf 45
idruzin 0:7fecc14decbf 46 }
idruzin 0:7fecc14decbf 47 wait(1);
idruzin 0:7fecc14decbf 48
idruzin 0:7fecc14decbf 49 }
idruzin 0:7fecc14decbf 50 }
idruzin 0:7fecc14decbf 51
idruzin 0:7fecc14decbf 52 char BOByte(int temp) {
idruzin 0:7fecc14decbf 53
idruzin 0:7fecc14decbf 54 char BOut;
idruzin 0:7fecc14decbf 55
idruzin 0:7fecc14decbf 56 switch(temp) {
idruzin 0:7fecc14decbf 57 case 20: BOut = 0x01; break;
idruzin 0:7fecc14decbf 58 case 21: BOut = 0x01; break;
idruzin 0:7fecc14decbf 59 case 22: BOut = 0x03; break;
idruzin 0:7fecc14decbf 60 case 23: BOut = 0x03; break;
idruzin 0:7fecc14decbf 61 case 24: BOut = 0x07; break;
idruzin 0:7fecc14decbf 62 case 25: BOut = 0x07; break;
idruzin 0:7fecc14decbf 63 case 26: BOut = 0x0F; break;
idruzin 0:7fecc14decbf 64 case 27: BOut = 0x0F; break;
idruzin 0:7fecc14decbf 65 case 28: BOut = 0x1F; break;
idruzin 0:7fecc14decbf 66 case 29: BOut = 0x1F; break;
idruzin 0:7fecc14decbf 67 case 30: BOut = 0x3F; break;
idruzin 0:7fecc14decbf 68 case 31: BOut = 0x3F; break;
idruzin 0:7fecc14decbf 69 case 32: BOut = 0x7F; break;
idruzin 0:7fecc14decbf 70 case 33: BOut = 0x7F; break;
idruzin 0:7fecc14decbf 71 case 34: BOut = 0xFF; break;
idruzin 0:7fecc14decbf 72 case 35: BOut = 0xFF; break;
idruzin 0:7fecc14decbf 73 default:
idruzin 0:7fecc14decbf 74 BOut = 0x00;
idruzin 0:7fecc14decbf 75 }
idruzin 0:7fecc14decbf 76
idruzin 0:7fecc14decbf 77 return BOut; // config data byte1, BOut
idruzin 0:7fecc14decbf 78
idruzin 0:7fecc14decbf 79 }