Panusorn Chinsakuljaroen
/
LAB2
000
HW2.cpp@0:e754adb9647f, 2018-11-16 (annotated)
- Committer:
- sunninety1
- Date:
- Fri Nov 16 16:54:19 2018 +0000
- Revision:
- 0:e754adb9647f
0000;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
sunninety1 | 0:e754adb9647f | 1 | #include "mbed.h" |
sunninety1 | 0:e754adb9647f | 2 | AnalogIn analog_value(A1); |
sunninety1 | 0:e754adb9647f | 3 | DigitalOut l1(D13); |
sunninety1 | 0:e754adb9647f | 4 | DigitalOut l2(D12); |
sunninety1 | 0:e754adb9647f | 5 | DigitalOut l3(D11); |
sunninety1 | 0:e754adb9647f | 6 | DigitalOut l4(D10); |
sunninety1 | 0:e754adb9647f | 7 | DigitalOut l5(D9); |
sunninety1 | 0:e754adb9647f | 8 | DigitalOut l6(D8); |
sunninety1 | 0:e754adb9647f | 9 | DigitalOut l7(D7); |
sunninety1 | 0:e754adb9647f | 10 | DigitalOut l8(D6); |
sunninety1 | 0:e754adb9647f | 11 | |
sunninety1 | 0:e754adb9647f | 12 | DigitalOut sd(PC_0); |
sunninety1 | 0:e754adb9647f | 13 | DigitalOut sc(PC_1); |
sunninety1 | 0:e754adb9647f | 14 | DigitalOut sb(PB_0); |
sunninety1 | 0:e754adb9647f | 15 | DigitalOut sa(PA_4); |
sunninety1 | 0:e754adb9647f | 16 | DigitalOut sdo(PB_2); |
sunninety1 | 0:e754adb9647f | 17 | |
sunninety1 | 0:e754adb9647f | 18 | |
sunninety1 | 0:e754adb9647f | 19 | DigitalOut s2d(PB_8); |
sunninety1 | 0:e754adb9647f | 20 | DigitalOut s2c(PB_9); |
sunninety1 | 0:e754adb9647f | 21 | DigitalOut s2b(PB_5); |
sunninety1 | 0:e754adb9647f | 22 | DigitalOut s2a(PB_3); |
sunninety1 | 0:e754adb9647f | 23 | |
sunninety1 | 0:e754adb9647f | 24 | DigitalIn sw(D5); |
sunninety1 | 0:e754adb9647f | 25 | |
sunninety1 | 0:e754adb9647f | 26 | void led(float mv) |
sunninety1 | 0:e754adb9647f | 27 | { |
sunninety1 | 0:e754adb9647f | 28 | if (mv>413) { |
sunninety1 | 0:e754adb9647f | 29 | l1=1; |
sunninety1 | 0:e754adb9647f | 30 | } else { |
sunninety1 | 0:e754adb9647f | 31 | l1=0; |
sunninety1 | 0:e754adb9647f | 32 | } |
sunninety1 | 0:e754adb9647f | 33 | |
sunninety1 | 0:e754adb9647f | 34 | if (mv>825) { |
sunninety1 | 0:e754adb9647f | 35 | l2=1; |
sunninety1 | 0:e754adb9647f | 36 | } else { |
sunninety1 | 0:e754adb9647f | 37 | l2=0; |
sunninety1 | 0:e754adb9647f | 38 | } |
sunninety1 | 0:e754adb9647f | 39 | |
sunninety1 | 0:e754adb9647f | 40 | if (mv>1238) { |
sunninety1 | 0:e754adb9647f | 41 | l3=1; |
sunninety1 | 0:e754adb9647f | 42 | } else { |
sunninety1 | 0:e754adb9647f | 43 | l3=0; |
sunninety1 | 0:e754adb9647f | 44 | } |
sunninety1 | 0:e754adb9647f | 45 | |
sunninety1 | 0:e754adb9647f | 46 | if (mv>1650) { |
sunninety1 | 0:e754adb9647f | 47 | l4=1; |
sunninety1 | 0:e754adb9647f | 48 | } else { |
sunninety1 | 0:e754adb9647f | 49 | l4=0; |
sunninety1 | 0:e754adb9647f | 50 | } |
sunninety1 | 0:e754adb9647f | 51 | |
sunninety1 | 0:e754adb9647f | 52 | if (mv>2063) { |
sunninety1 | 0:e754adb9647f | 53 | l5=1; |
sunninety1 | 0:e754adb9647f | 54 | } else { |
sunninety1 | 0:e754adb9647f | 55 | l5=0; |
sunninety1 | 0:e754adb9647f | 56 | } |
sunninety1 | 0:e754adb9647f | 57 | |
sunninety1 | 0:e754adb9647f | 58 | if (mv>2475) { |
sunninety1 | 0:e754adb9647f | 59 | l6=1; |
sunninety1 | 0:e754adb9647f | 60 | } else { |
sunninety1 | 0:e754adb9647f | 61 | l6=0; |
sunninety1 | 0:e754adb9647f | 62 | } |
sunninety1 | 0:e754adb9647f | 63 | |
sunninety1 | 0:e754adb9647f | 64 | if (mv>2888) { |
sunninety1 | 0:e754adb9647f | 65 | l7=1; |
sunninety1 | 0:e754adb9647f | 66 | } else { |
sunninety1 | 0:e754adb9647f | 67 | l7=0; |
sunninety1 | 0:e754adb9647f | 68 | } |
sunninety1 | 0:e754adb9647f | 69 | |
sunninety1 | 0:e754adb9647f | 70 | if (mv>3200) { |
sunninety1 | 0:e754adb9647f | 71 | l8=1; |
sunninety1 | 0:e754adb9647f | 72 | } else { |
sunninety1 | 0:e754adb9647f | 73 | l8=0; |
sunninety1 | 0:e754adb9647f | 74 | } |
sunninety1 | 0:e754adb9647f | 75 | |
sunninety1 | 0:e754adb9647f | 76 | wait(0.02); |
sunninety1 | 0:e754adb9647f | 77 | } |
sunninety1 | 0:e754adb9647f | 78 | |
sunninety1 | 0:e754adb9647f | 79 | void ss(float x) |
sunninety1 | 0:e754adb9647f | 80 | { |
sunninety1 | 0:e754adb9647f | 81 | //int segment[10][4]={{0,0,0,0},{0,0,0,1},{0,0,1,0},{0,0,1,1},{0,1,0,0},{0,1,0,1},{0,1,1,0},{0,1,1,1},{1,0,0,0},{1,0,0,1}}; |
sunninety1 | 0:e754adb9647f | 82 | int nu1 = x/1000; |
sunninety1 | 0:e754adb9647f | 83 | int nu15 = (int)x%1000; |
sunninety1 | 0:e754adb9647f | 84 | int nu2=nu15/100; |
sunninety1 | 0:e754adb9647f | 85 | BusOut a(PA_4,PB_0,PC_1,PC_0); |
sunninety1 | 0:e754adb9647f | 86 | a=nu1; |
sunninety1 | 0:e754adb9647f | 87 | BusOut b(PB_3,PB_5,PB_9,PB_8); |
sunninety1 | 0:e754adb9647f | 88 | b=nu2; |
sunninety1 | 0:e754adb9647f | 89 | sdo=1; |
sunninety1 | 0:e754adb9647f | 90 | |
sunninety1 | 0:e754adb9647f | 91 | } |
sunninety1 | 0:e754adb9647f | 92 | int main() |
sunninety1 | 0:e754adb9647f | 93 | { |
sunninety1 | 0:e754adb9647f | 94 | |
sunninety1 | 0:e754adb9647f | 95 | int x=0; |
sunninety1 | 0:e754adb9647f | 96 | while(1) { |
sunninety1 | 0:e754adb9647f | 97 | float meas_r = analog_value.read(); // Read the analog input value (value from 0.0 to 1.0 = full ADC conversion range) |
sunninety1 | 0:e754adb9647f | 98 | float mv = meas_r * 3300; // Converts value in the 0V-3.3V range |
sunninety1 | 0:e754adb9647f | 99 | if (sw==1){ |
sunninety1 | 0:e754adb9647f | 100 | wait(0.5); |
sunninety1 | 0:e754adb9647f | 101 | x+=1; |
sunninety1 | 0:e754adb9647f | 102 | if (x>2){x=0; |
sunninety1 | 0:e754adb9647f | 103 | } |
sunninety1 | 0:e754adb9647f | 104 | } |
sunninety1 | 0:e754adb9647f | 105 | if (x==0){ |
sunninety1 | 0:e754adb9647f | 106 | ss(mv); |
sunninety1 | 0:e754adb9647f | 107 | l1=0; |
sunninety1 | 0:e754adb9647f | 108 | l2=0; |
sunninety1 | 0:e754adb9647f | 109 | l3=0; |
sunninety1 | 0:e754adb9647f | 110 | l4=0; |
sunninety1 | 0:e754adb9647f | 111 | l5=0; |
sunninety1 | 0:e754adb9647f | 112 | l6=0; |
sunninety1 | 0:e754adb9647f | 113 | l7=0; |
sunninety1 | 0:e754adb9647f | 114 | l8=0; |
sunninety1 | 0:e754adb9647f | 115 | wait(0.01); |
sunninety1 | 0:e754adb9647f | 116 | } |
sunninety1 | 0:e754adb9647f | 117 | else {led(mv); |
sunninety1 | 0:e754adb9647f | 118 | ss(0); |
sunninety1 | 0:e754adb9647f | 119 | } |
sunninety1 | 0:e754adb9647f | 120 | |
sunninety1 | 0:e754adb9647f | 121 | } |
sunninety1 | 0:e754adb9647f | 122 | } |