Jostein Baustad
/
punkt1-4
wefewf
main.cpp@1:5be01136a518, 2019-02-08 (annotated)
- Committer:
- JostBaus
- Date:
- Fri Feb 08 13:47:17 2019 +0000
- Revision:
- 1:5be01136a518
- Parent:
- 0:31bfb8d89abd
Fixed some problems^^
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
JostBaus | 0:31bfb8d89abd | 1 | #include "mbed.h" |
JostBaus | 0:31bfb8d89abd | 2 | |
JostBaus | 0:31bfb8d89abd | 3 | Serial pc(USBTX,USBRX); |
JostBaus | 0:31bfb8d89abd | 4 | |
JostBaus | 0:31bfb8d89abd | 5 | |
JostBaus | 0:31bfb8d89abd | 6 | |
JostBaus | 0:31bfb8d89abd | 7 | AnalogIn s11(p17); |
JostBaus | 0:31bfb8d89abd | 8 | AnalogIn s12(p18); |
JostBaus | 0:31bfb8d89abd | 9 | AnalogIn s13(p19); |
JostBaus | 0:31bfb8d89abd | 10 | AnalogIn s14(p20); |
JostBaus | 0:31bfb8d89abd | 11 | |
JostBaus | 0:31bfb8d89abd | 12 | DigitalIn resetb(p16); |
JostBaus | 0:31bfb8d89abd | 13 | |
JostBaus | 0:31bfb8d89abd | 14 | BusOut led(p25, p26, p27, p28); |
JostBaus | 0:31bfb8d89abd | 15 | |
JostBaus | 0:31bfb8d89abd | 16 | DigitalOut led1(LED1), led2(LED2), led3(LED3), led4(LED4); |
JostBaus | 0:31bfb8d89abd | 17 | |
JostBaus | 0:31bfb8d89abd | 18 | DigitalOut door1(p21), door2(p22), door3(p23), door4(p24); |
JostBaus | 0:31bfb8d89abd | 19 | DigitalOut door5(p25), door6(p26), door7(p27), door8(p28); |
JostBaus | 0:31bfb8d89abd | 20 | |
JostBaus | 0:31bfb8d89abd | 21 | |
JostBaus | 0:31bfb8d89abd | 22 | |
JostBaus | 0:31bfb8d89abd | 23 | float ain1; |
JostBaus | 0:31bfb8d89abd | 24 | float ain2; |
JostBaus | 0:31bfb8d89abd | 25 | float ain3; |
JostBaus | 0:31bfb8d89abd | 26 | float ain4; |
JostBaus | 0:31bfb8d89abd | 27 | float value; |
JostBaus | 0:31bfb8d89abd | 28 | int who; |
JostBaus | 0:31bfb8d89abd | 29 | |
JostBaus | 0:31bfb8d89abd | 30 | void alarm(float value, int who); |
JostBaus | 0:31bfb8d89abd | 31 | void sloyfe1(); |
JostBaus | 0:31bfb8d89abd | 32 | void sloyfe2(); |
JostBaus | 0:31bfb8d89abd | 33 | void sloyfe3(); |
JostBaus | 0:31bfb8d89abd | 34 | void sloyfe4(); |
JostBaus | 0:31bfb8d89abd | 35 | void blink(); |
JostBaus | 0:31bfb8d89abd | 36 | void printV(); |
JostBaus | 0:31bfb8d89abd | 37 | |
JostBaus | 0:31bfb8d89abd | 38 | |
JostBaus | 1:5be01136a518 | 39 | //Ticker ticker1; |
JostBaus | 0:31bfb8d89abd | 40 | Ticker slf1; |
JostBaus | 0:31bfb8d89abd | 41 | Ticker slf2; |
JostBaus | 0:31bfb8d89abd | 42 | Ticker slf3; |
JostBaus | 0:31bfb8d89abd | 43 | Ticker slf4; |
JostBaus | 0:31bfb8d89abd | 44 | Ticker blinkON; |
JostBaus | 0:31bfb8d89abd | 45 | |
JostBaus | 0:31bfb8d89abd | 46 | int main () |
JostBaus | 0:31bfb8d89abd | 47 | { |
JostBaus | 0:31bfb8d89abd | 48 | led1 = 1; |
JostBaus | 1:5be01136a518 | 49 | //ticker1.attach(&printV, 0.7); |
JostBaus | 0:31bfb8d89abd | 50 | slf1.attach(&sloyfe1, 0.7); |
JostBaus | 0:31bfb8d89abd | 51 | slf2.attach(&sloyfe2, 0.7); |
JostBaus | 0:31bfb8d89abd | 52 | slf3.attach(&sloyfe3, 0.7); |
JostBaus | 0:31bfb8d89abd | 53 | slf4.attach(&sloyfe4, 0.7); |
JostBaus | 0:31bfb8d89abd | 54 | |
JostBaus | 0:31bfb8d89abd | 55 | while (1) |
JostBaus | 0:31bfb8d89abd | 56 | { |
JostBaus | 0:31bfb8d89abd | 57 | |
JostBaus | 0:31bfb8d89abd | 58 | if (resetb == 1) |
JostBaus | 0:31bfb8d89abd | 59 | { |
JostBaus | 0:31bfb8d89abd | 60 | led1 = led2 = led3 = led4 = 0; |
JostBaus | 0:31bfb8d89abd | 61 | led = 0; |
JostBaus | 0:31bfb8d89abd | 62 | blinkON.detach(); |
JostBaus | 0:31bfb8d89abd | 63 | } |
JostBaus | 0:31bfb8d89abd | 64 | |
JostBaus | 0:31bfb8d89abd | 65 | |
JostBaus | 0:31bfb8d89abd | 66 | |
JostBaus | 0:31bfb8d89abd | 67 | |
JostBaus | 0:31bfb8d89abd | 68 | } |
JostBaus | 0:31bfb8d89abd | 69 | } |
JostBaus | 0:31bfb8d89abd | 70 | |
JostBaus | 0:31bfb8d89abd | 71 | |
JostBaus | 1:5be01136a518 | 72 | /*void printV() |
JostBaus | 0:31bfb8d89abd | 73 | { |
JostBaus | 1:5be01136a518 | 74 | pc.printf ("ain1 = %f\n\r", s11 * 3.3); |
JostBaus | 1:5be01136a518 | 75 | pc.printf ("ain2 = %f\n\r", s12 * 3.3); |
JostBaus | 1:5be01136a518 | 76 | pc.printf ("%f\n\r", s13 * 3.3); |
JostBaus | 1:5be01136a518 | 77 | pc.printf ("%f\n\r", s14 * 3.3); |
JostBaus | 0:31bfb8d89abd | 78 | |
JostBaus | 1:5be01136a518 | 79 | }*/ |
JostBaus | 0:31bfb8d89abd | 80 | |
JostBaus | 0:31bfb8d89abd | 81 | void sloyfe1() |
JostBaus | 0:31bfb8d89abd | 82 | { |
JostBaus | 0:31bfb8d89abd | 83 | ain1 = (s11 * 3.3); |
JostBaus | 0:31bfb8d89abd | 84 | |
JostBaus | 0:31bfb8d89abd | 85 | if (ain1 > 2.33 && ain1 < 2.28) //Vanlig state |
JostBaus | 0:31bfb8d89abd | 86 | { |
JostBaus | 0:31bfb8d89abd | 87 | pc.printf("OK"); |
JostBaus | 0:31bfb8d89abd | 88 | } |
JostBaus | 0:31bfb8d89abd | 89 | else |
JostBaus | 0:31bfb8d89abd | 90 | { |
JostBaus | 0:31bfb8d89abd | 91 | alarm(ain2, 2); |
JostBaus | 0:31bfb8d89abd | 92 | } |
JostBaus | 0:31bfb8d89abd | 93 | } |
JostBaus | 0:31bfb8d89abd | 94 | |
JostBaus | 0:31bfb8d89abd | 95 | void sloyfe2() |
JostBaus | 0:31bfb8d89abd | 96 | { |
JostBaus | 0:31bfb8d89abd | 97 | ain2 = (s12 * 3.3); |
JostBaus | 0:31bfb8d89abd | 98 | |
JostBaus | 0:31bfb8d89abd | 99 | if (ain2 > 2.33 && ain2 < 2.28) //Vanlig state |
JostBaus | 0:31bfb8d89abd | 100 | { |
JostBaus | 0:31bfb8d89abd | 101 | pc.printf("OK"); |
JostBaus | 0:31bfb8d89abd | 102 | } |
JostBaus | 0:31bfb8d89abd | 103 | else |
JostBaus | 0:31bfb8d89abd | 104 | { |
JostBaus | 0:31bfb8d89abd | 105 | alarm(ain2, 2); |
JostBaus | 0:31bfb8d89abd | 106 | } |
JostBaus | 0:31bfb8d89abd | 107 | } |
JostBaus | 0:31bfb8d89abd | 108 | |
JostBaus | 0:31bfb8d89abd | 109 | void sloyfe3() |
JostBaus | 0:31bfb8d89abd | 110 | { |
JostBaus | 0:31bfb8d89abd | 111 | ain3 = (s13 * 3.3); |
JostBaus | 0:31bfb8d89abd | 112 | |
JostBaus | 0:31bfb8d89abd | 113 | if (ain3 > 2.33 && ain3 < 2.28) //Vanlig state |
JostBaus | 0:31bfb8d89abd | 114 | { |
JostBaus | 0:31bfb8d89abd | 115 | pc.printf("OK"); |
JostBaus | 0:31bfb8d89abd | 116 | } |
JostBaus | 0:31bfb8d89abd | 117 | else |
JostBaus | 0:31bfb8d89abd | 118 | { |
JostBaus | 0:31bfb8d89abd | 119 | alarm(ain3, 4); |
JostBaus | 0:31bfb8d89abd | 120 | } |
JostBaus | 0:31bfb8d89abd | 121 | } |
JostBaus | 0:31bfb8d89abd | 122 | |
JostBaus | 0:31bfb8d89abd | 123 | void sloyfe4() |
JostBaus | 0:31bfb8d89abd | 124 | { |
JostBaus | 0:31bfb8d89abd | 125 | ain4 = (s14 * 3.3); |
JostBaus | 0:31bfb8d89abd | 126 | |
JostBaus | 0:31bfb8d89abd | 127 | if (ain4 > 2.33 && ain4 < 2.28) //Vanlig state |
JostBaus | 0:31bfb8d89abd | 128 | { |
JostBaus | 0:31bfb8d89abd | 129 | pc.printf("OK"); |
JostBaus | 0:31bfb8d89abd | 130 | } |
JostBaus | 0:31bfb8d89abd | 131 | else |
JostBaus | 0:31bfb8d89abd | 132 | { |
JostBaus | 0:31bfb8d89abd | 133 | alarm(ain4, 8); |
JostBaus | 0:31bfb8d89abd | 134 | } |
JostBaus | 0:31bfb8d89abd | 135 | } |
JostBaus | 0:31bfb8d89abd | 136 | |
JostBaus | 0:31bfb8d89abd | 137 | void alarm(float value, int who) |
JostBaus | 0:31bfb8d89abd | 138 | { |
JostBaus | 0:31bfb8d89abd | 139 | if (value > 0.483 && value < 0.474) //Dør 1 og dør 2 åpen |
JostBaus | 0:31bfb8d89abd | 140 | { |
JostBaus | 0:31bfb8d89abd | 141 | pc.printf("Both doors are open in s%d\n\r", who); |
JostBaus | 0:31bfb8d89abd | 142 | led = who; |
JostBaus | 0:31bfb8d89abd | 143 | led3 = 1; |
JostBaus | 0:31bfb8d89abd | 144 | led4 = 1; |
JostBaus | 1:5be01136a518 | 145 | blinkON.attach(&blink, 0.1); |
JostBaus | 0:31bfb8d89abd | 146 | } |
JostBaus | 0:31bfb8d89abd | 147 | |
JostBaus | 0:31bfb8d89abd | 148 | else if (value > 0.879 && value < 0.862) //Dør 1 åpen |
JostBaus | 0:31bfb8d89abd | 149 | { |
JostBaus | 0:31bfb8d89abd | 150 | pc.printf("Door 1 is open in s%d\n\r", who); |
JostBaus | 0:31bfb8d89abd | 151 | led = who; |
JostBaus | 0:31bfb8d89abd | 152 | led3 = 1; |
JostBaus | 1:5be01136a518 | 153 | blinkON.attach(&blink, 0.1); |
JostBaus | 0:31bfb8d89abd | 154 | } |
JostBaus | 0:31bfb8d89abd | 155 | |
JostBaus | 0:31bfb8d89abd | 156 | else if (value > 0.736 && value < 0.721) //Dør 2 åpen |
JostBaus | 0:31bfb8d89abd | 157 | { |
JostBaus | 0:31bfb8d89abd | 158 | pc.printf("Door 2 is open in s%d\n\r", who); |
JostBaus | 0:31bfb8d89abd | 159 | led = who; |
JostBaus | 0:31bfb8d89abd | 160 | led4 = 1; |
JostBaus | 1:5be01136a518 | 161 | blinkON.attach(&blink, 0.1); |
JostBaus | 0:31bfb8d89abd | 162 | } |
JostBaus | 0:31bfb8d89abd | 163 | |
JostBaus | 0:31bfb8d89abd | 164 | else if (value > 2.92 && value < 2.86) //Dør 1 kortsluttet |
JostBaus | 0:31bfb8d89abd | 165 | { |
JostBaus | 0:31bfb8d89abd | 166 | pc.printf("Short Circuit at Door 1 in s%d\n\r", who); |
JostBaus | 0:31bfb8d89abd | 167 | led = who; |
JostBaus | 0:31bfb8d89abd | 168 | led3 = 1; |
JostBaus | 1:5be01136a518 | 169 | blinkON.attach(&blink, 0.1); |
JostBaus | 0:31bfb8d89abd | 170 | |
JostBaus | 0:31bfb8d89abd | 171 | } |
JostBaus | 0:31bfb8d89abd | 172 | |
JostBaus | 0:31bfb8d89abd | 173 | else if (value > 2.58 && value < 2.53) //Dør 2 kortsluttet |
JostBaus | 0:31bfb8d89abd | 174 | { |
JostBaus | 0:31bfb8d89abd | 175 | pc.printf("Short Circuit at Door 2 in s%d\n\r", who); |
JostBaus | 0:31bfb8d89abd | 176 | led = who; |
JostBaus | 0:31bfb8d89abd | 177 | led4 = 1; |
JostBaus | 1:5be01136a518 | 178 | blinkON.attach(&blink, 0.1); |
JostBaus | 0:31bfb8d89abd | 179 | |
JostBaus | 0:31bfb8d89abd | 180 | |
JostBaus | 0:31bfb8d89abd | 181 | } |
JostBaus | 0:31bfb8d89abd | 182 | |
JostBaus | 0:31bfb8d89abd | 183 | else //Something wrong in wing 1 |
JostBaus | 0:31bfb8d89abd | 184 | { |
JostBaus | 0:31bfb8d89abd | 185 | pc.printf("verdi stemmer ikke %f", ain1); |
JostBaus | 0:31bfb8d89abd | 186 | blinkON.attach(&blink, 0.1); |
JostBaus | 0:31bfb8d89abd | 187 | |
JostBaus | 0:31bfb8d89abd | 188 | } |
JostBaus | 0:31bfb8d89abd | 189 | } |
JostBaus | 0:31bfb8d89abd | 190 | |
JostBaus | 0:31bfb8d89abd | 191 | void blink() |
JostBaus | 0:31bfb8d89abd | 192 | { |
JostBaus | 0:31bfb8d89abd | 193 | led1 = !led1; |
JostBaus | 0:31bfb8d89abd | 194 | } |