Thipawan Pairam
/
LAB2
LAB2 FRA221
lab2.cpp@0:bfa79f935a5b, 2017-10-31 (annotated)
- Committer:
- Pairam
- Date:
- Tue Oct 31 14:11:46 2017 +0000
- Revision:
- 0:bfa79f935a5b
LAB2
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Pairam | 0:bfa79f935a5b | 1 | #include "mbed.h" |
Pairam | 0:bfa79f935a5b | 2 | |
Pairam | 0:bfa79f935a5b | 3 | AnalogIn analog_value(A1); |
Pairam | 0:bfa79f935a5b | 4 | BusOut segOut1(D11, D10); |
Pairam | 0:bfa79f935a5b | 5 | BusOut segOut2(D15, D14,D13,D12); |
Pairam | 0:bfa79f935a5b | 6 | BusOut lab1(D9, D8, D7, D6, D5, D4, D3, D2); |
Pairam | 0:bfa79f935a5b | 7 | DigitalIn Inled(USER_BUTTON); |
Pairam | 0:bfa79f935a5b | 8 | Serial pc(SERIAL_TX, SERIAL_RX); |
Pairam | 0:bfa79f935a5b | 9 | |
Pairam | 0:bfa79f935a5b | 10 | void segment() |
Pairam | 0:bfa79f935a5b | 11 | { |
Pairam | 0:bfa79f935a5b | 12 | float analog; |
Pairam | 0:bfa79f935a5b | 13 | analog = analog_value.read(); |
Pairam | 0:bfa79f935a5b | 14 | int volt = analog * 3300; |
Pairam | 0:bfa79f935a5b | 15 | int divide = volt/1000; |
Pairam | 0:bfa79f935a5b | 16 | int unit = (volt % 1000)/100; |
Pairam | 0:bfa79f935a5b | 17 | segOut1 = divide; |
Pairam | 0:bfa79f935a5b | 18 | segOut2 = unit; |
Pairam | 0:bfa79f935a5b | 19 | lab1 = 0; |
Pairam | 0:bfa79f935a5b | 20 | // wait(0.4); |
Pairam | 0:bfa79f935a5b | 21 | } |
Pairam | 0:bfa79f935a5b | 22 | |
Pairam | 0:bfa79f935a5b | 23 | void ledout() |
Pairam | 0:bfa79f935a5b | 24 | { |
Pairam | 0:bfa79f935a5b | 25 | float analog; |
Pairam | 0:bfa79f935a5b | 26 | int volt33000,bin_value; |
Pairam | 0:bfa79f935a5b | 27 | analog = analog_value.read(); |
Pairam | 0:bfa79f935a5b | 28 | volt33000 = analog*33000; |
Pairam | 0:bfa79f935a5b | 29 | |
Pairam | 0:bfa79f935a5b | 30 | if (volt33000 >= 33000/8*8) { |
Pairam | 0:bfa79f935a5b | 31 | bin_value = 256-1; |
Pairam | 0:bfa79f935a5b | 32 | } else if (volt33000 >= 33000/8*7) { |
Pairam | 0:bfa79f935a5b | 33 | bin_value = 128-1; |
Pairam | 0:bfa79f935a5b | 34 | } else if (volt33000 >= 33000/8*6) { |
Pairam | 0:bfa79f935a5b | 35 | bin_value = 64-1; |
Pairam | 0:bfa79f935a5b | 36 | } else if (volt33000 >= 33000/8*5) { |
Pairam | 0:bfa79f935a5b | 37 | bin_value = 32-1; |
Pairam | 0:bfa79f935a5b | 38 | } else if (volt33000 >= 33000/8*4) { |
Pairam | 0:bfa79f935a5b | 39 | bin_value = 16-1; |
Pairam | 0:bfa79f935a5b | 40 | } else if (volt33000 >= 33000/8*3) { |
Pairam | 0:bfa79f935a5b | 41 | bin_value = 8-1; |
Pairam | 0:bfa79f935a5b | 42 | } else if (volt33000 >= 33000/8*2) { |
Pairam | 0:bfa79f935a5b | 43 | bin_value = 4-1; |
Pairam | 0:bfa79f935a5b | 44 | } else if (volt33000 >= 33000/8*1) { |
Pairam | 0:bfa79f935a5b | 45 | bin_value = 2-1; |
Pairam | 0:bfa79f935a5b | 46 | } else if (volt33000 >= 33000/8*0) { |
Pairam | 0:bfa79f935a5b | 47 | bin_value = 1-1; |
Pairam | 0:bfa79f935a5b | 48 | } |
Pairam | 0:bfa79f935a5b | 49 | lab1 = bin_value; |
Pairam | 0:bfa79f935a5b | 50 | segOut1 = 0; |
Pairam | 0:bfa79f935a5b | 51 | segOut2 = 0; |
Pairam | 0:bfa79f935a5b | 52 | |
Pairam | 0:bfa79f935a5b | 53 | } |
Pairam | 0:bfa79f935a5b | 54 | |
Pairam | 0:bfa79f935a5b | 55 | int main() |
Pairam | 0:bfa79f935a5b | 56 | { |
Pairam | 0:bfa79f935a5b | 57 | int state = 0; |
Pairam | 0:bfa79f935a5b | 58 | |
Pairam | 0:bfa79f935a5b | 59 | while(1) { |
Pairam | 0:bfa79f935a5b | 60 | if (Inled == 0 && state == 1) { |
Pairam | 0:bfa79f935a5b | 61 | state = 0; //lab1 |
Pairam | 0:bfa79f935a5b | 62 | } else if (Inled == 0 && state == 0) { |
Pairam | 0:bfa79f935a5b | 63 | state = 1; //lab2 |
Pairam | 0:bfa79f935a5b | 64 | } |
Pairam | 0:bfa79f935a5b | 65 | |
Pairam | 0:bfa79f935a5b | 66 | if (state == 0) { |
Pairam | 0:bfa79f935a5b | 67 | ledout(); |
Pairam | 0:bfa79f935a5b | 68 | } else if (state == 1) { |
Pairam | 0:bfa79f935a5b | 69 | segment(); |
Pairam | 0:bfa79f935a5b | 70 | } |
Pairam | 0:bfa79f935a5b | 71 | } |
Pairam | 0:bfa79f935a5b | 72 | } |