M. Artić, I. Družin
Dependencies: mbed
main.cpp@0:7fecc14decbf, 2017-01-25 (annotated)
- Committer:
- idruzin
- Date:
- Wed Jan 25 18:04:27 2017 +0000
- Revision:
- 0:7fecc14decbf
Projektni zadatak 10
Who changed what in which revision?
User | Revision | Line number | New 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 | } |