Jostein Baustad
/
punkt1-4
wefewf
main.cpp@0:31bfb8d89abd, 2019-02-08 (annotated)
- Committer:
- JostBaus
- Date:
- Fri Feb 08 13:38:35 2019 +0000
- Revision:
- 0:31bfb8d89abd
- Child:
- 1:5be01136a518
punkt 1-4
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 | 0:31bfb8d89abd | 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 | 0:31bfb8d89abd | 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 | 0:31bfb8d89abd | 72 | void printV() |
JostBaus | 0:31bfb8d89abd | 73 | { |
JostBaus | 0:31bfb8d89abd | 74 | //pc.printf ("ain1 = %f\n\r", s11 * 3.3); |
JostBaus | 0:31bfb8d89abd | 75 | //pc.printf ("ain2 = %f\n\r", s12 * 3.3); |
JostBaus | 0:31bfb8d89abd | 76 | //pc.printf ("%f\n\r", s13 * 3.3); |
JostBaus | 0:31bfb8d89abd | 77 | //pc.printf ("%f\n\r", s14 * 3.3); |
JostBaus | 0:31bfb8d89abd | 78 | |
JostBaus | 0:31bfb8d89abd | 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 | led = 0; |
JostBaus | 0:31bfb8d89abd | 89 | led1 = 0; |
JostBaus | 0:31bfb8d89abd | 90 | led2 = 0; |
JostBaus | 0:31bfb8d89abd | 91 | led3 = 0; |
JostBaus | 0:31bfb8d89abd | 92 | led4 = 0; |
JostBaus | 0:31bfb8d89abd | 93 | } |
JostBaus | 0:31bfb8d89abd | 94 | else |
JostBaus | 0:31bfb8d89abd | 95 | { |
JostBaus | 0:31bfb8d89abd | 96 | alarm(ain2, 2); |
JostBaus | 0:31bfb8d89abd | 97 | } |
JostBaus | 0:31bfb8d89abd | 98 | } |
JostBaus | 0:31bfb8d89abd | 99 | |
JostBaus | 0:31bfb8d89abd | 100 | void sloyfe2() |
JostBaus | 0:31bfb8d89abd | 101 | { |
JostBaus | 0:31bfb8d89abd | 102 | ain2 = (s12 * 3.3); |
JostBaus | 0:31bfb8d89abd | 103 | |
JostBaus | 0:31bfb8d89abd | 104 | if (ain2 > 2.33 && ain2 < 2.28) //Vanlig state |
JostBaus | 0:31bfb8d89abd | 105 | { |
JostBaus | 0:31bfb8d89abd | 106 | pc.printf("OK"); |
JostBaus | 0:31bfb8d89abd | 107 | } |
JostBaus | 0:31bfb8d89abd | 108 | else |
JostBaus | 0:31bfb8d89abd | 109 | { |
JostBaus | 0:31bfb8d89abd | 110 | alarm(ain2, 2); |
JostBaus | 0:31bfb8d89abd | 111 | } |
JostBaus | 0:31bfb8d89abd | 112 | } |
JostBaus | 0:31bfb8d89abd | 113 | |
JostBaus | 0:31bfb8d89abd | 114 | void sloyfe3() |
JostBaus | 0:31bfb8d89abd | 115 | { |
JostBaus | 0:31bfb8d89abd | 116 | ain3 = (s13 * 3.3); |
JostBaus | 0:31bfb8d89abd | 117 | |
JostBaus | 0:31bfb8d89abd | 118 | if (ain3 > 2.33 && ain3 < 2.28) //Vanlig state |
JostBaus | 0:31bfb8d89abd | 119 | { |
JostBaus | 0:31bfb8d89abd | 120 | pc.printf("OK"); |
JostBaus | 0:31bfb8d89abd | 121 | } |
JostBaus | 0:31bfb8d89abd | 122 | else |
JostBaus | 0:31bfb8d89abd | 123 | { |
JostBaus | 0:31bfb8d89abd | 124 | alarm(ain3, 4); |
JostBaus | 0:31bfb8d89abd | 125 | } |
JostBaus | 0:31bfb8d89abd | 126 | } |
JostBaus | 0:31bfb8d89abd | 127 | |
JostBaus | 0:31bfb8d89abd | 128 | void sloyfe4() |
JostBaus | 0:31bfb8d89abd | 129 | { |
JostBaus | 0:31bfb8d89abd | 130 | ain4 = (s14 * 3.3); |
JostBaus | 0:31bfb8d89abd | 131 | |
JostBaus | 0:31bfb8d89abd | 132 | if (ain4 > 2.33 && ain4 < 2.28) //Vanlig state |
JostBaus | 0:31bfb8d89abd | 133 | { |
JostBaus | 0:31bfb8d89abd | 134 | pc.printf("OK"); |
JostBaus | 0:31bfb8d89abd | 135 | } |
JostBaus | 0:31bfb8d89abd | 136 | else |
JostBaus | 0:31bfb8d89abd | 137 | { |
JostBaus | 0:31bfb8d89abd | 138 | alarm(ain4, 8); |
JostBaus | 0:31bfb8d89abd | 139 | } |
JostBaus | 0:31bfb8d89abd | 140 | } |
JostBaus | 0:31bfb8d89abd | 141 | |
JostBaus | 0:31bfb8d89abd | 142 | void alarm(float value, int who) |
JostBaus | 0:31bfb8d89abd | 143 | { |
JostBaus | 0:31bfb8d89abd | 144 | if (value > 0.483 && value < 0.474) //Dør 1 og dør 2 åpen |
JostBaus | 0:31bfb8d89abd | 145 | { |
JostBaus | 0:31bfb8d89abd | 146 | pc.printf("Both doors are open in s%d\n\r", who); |
JostBaus | 0:31bfb8d89abd | 147 | led = who; |
JostBaus | 0:31bfb8d89abd | 148 | led3 = 1; |
JostBaus | 0:31bfb8d89abd | 149 | led4 = 1; |
JostBaus | 0:31bfb8d89abd | 150 | |
JostBaus | 0:31bfb8d89abd | 151 | } |
JostBaus | 0:31bfb8d89abd | 152 | |
JostBaus | 0:31bfb8d89abd | 153 | else if (value > 0.879 && value < 0.862) //Dør 1 åpen |
JostBaus | 0:31bfb8d89abd | 154 | { |
JostBaus | 0:31bfb8d89abd | 155 | pc.printf("Door 1 is open in s%d\n\r", who); |
JostBaus | 0:31bfb8d89abd | 156 | led = who; |
JostBaus | 0:31bfb8d89abd | 157 | led3 = 1; |
JostBaus | 0:31bfb8d89abd | 158 | |
JostBaus | 0:31bfb8d89abd | 159 | } |
JostBaus | 0:31bfb8d89abd | 160 | |
JostBaus | 0:31bfb8d89abd | 161 | else if (value > 0.736 && value < 0.721) //Dør 2 åpen |
JostBaus | 0:31bfb8d89abd | 162 | { |
JostBaus | 0:31bfb8d89abd | 163 | pc.printf("Door 2 is open in s%d\n\r", who); |
JostBaus | 0:31bfb8d89abd | 164 | led = who; |
JostBaus | 0:31bfb8d89abd | 165 | led4 = 1; |
JostBaus | 0:31bfb8d89abd | 166 | |
JostBaus | 0:31bfb8d89abd | 167 | } |
JostBaus | 0:31bfb8d89abd | 168 | |
JostBaus | 0:31bfb8d89abd | 169 | else if (value > 2.92 && value < 2.86) //Dør 1 kortsluttet |
JostBaus | 0:31bfb8d89abd | 170 | { |
JostBaus | 0:31bfb8d89abd | 171 | pc.printf("Short Circuit at Door 1 in s%d\n\r", who); |
JostBaus | 0:31bfb8d89abd | 172 | led = who; |
JostBaus | 0:31bfb8d89abd | 173 | led3 = 1; |
JostBaus | 0:31bfb8d89abd | 174 | |
JostBaus | 0:31bfb8d89abd | 175 | } |
JostBaus | 0:31bfb8d89abd | 176 | |
JostBaus | 0:31bfb8d89abd | 177 | else if (value > 2.58 && value < 2.53) //Dør 2 kortsluttet |
JostBaus | 0:31bfb8d89abd | 178 | { |
JostBaus | 0:31bfb8d89abd | 179 | pc.printf("Short Circuit at Door 2 in s%d\n\r", who); |
JostBaus | 0:31bfb8d89abd | 180 | led = who; |
JostBaus | 0:31bfb8d89abd | 181 | led4 = 1; |
JostBaus | 0:31bfb8d89abd | 182 | |
JostBaus | 0:31bfb8d89abd | 183 | |
JostBaus | 0:31bfb8d89abd | 184 | } |
JostBaus | 0:31bfb8d89abd | 185 | |
JostBaus | 0:31bfb8d89abd | 186 | else //Something wrong in wing 1 |
JostBaus | 0:31bfb8d89abd | 187 | { |
JostBaus | 0:31bfb8d89abd | 188 | pc.printf("verdi stemmer ikke %f", ain1); |
JostBaus | 0:31bfb8d89abd | 189 | blinkON.attach(&blink, 0.1); |
JostBaus | 0:31bfb8d89abd | 190 | |
JostBaus | 0:31bfb8d89abd | 191 | } |
JostBaus | 0:31bfb8d89abd | 192 | } |
JostBaus | 0:31bfb8d89abd | 193 | |
JostBaus | 0:31bfb8d89abd | 194 | void blink() |
JostBaus | 0:31bfb8d89abd | 195 | { |
JostBaus | 0:31bfb8d89abd | 196 | led1 = !led1; |
JostBaus | 0:31bfb8d89abd | 197 | } |