Jostein Baustad
/
punkt1-4
wefewf
Diff: main.cpp
- Revision:
- 0:31bfb8d89abd
- Child:
- 1:5be01136a518
diff -r 000000000000 -r 31bfb8d89abd main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Fri Feb 08 13:38:35 2019 +0000 @@ -0,0 +1,197 @@ +#include "mbed.h" + +Serial pc(USBTX,USBRX); + + + +AnalogIn s11(p17); +AnalogIn s12(p18); +AnalogIn s13(p19); +AnalogIn s14(p20); + +DigitalIn resetb(p16); + +BusOut led(p25, p26, p27, p28); + +DigitalOut led1(LED1), led2(LED2), led3(LED3), led4(LED4); + +DigitalOut door1(p21), door2(p22), door3(p23), door4(p24); +DigitalOut door5(p25), door6(p26), door7(p27), door8(p28); + + + +float ain1; +float ain2; +float ain3; +float ain4; +float value; +int who; + +void alarm(float value, int who); +void sloyfe1(); +void sloyfe2(); +void sloyfe3(); +void sloyfe4(); +void blink(); +void printV(); + + +Ticker ticker1; +Ticker slf1; +Ticker slf2; +Ticker slf3; +Ticker slf4; +Ticker blinkON; + +int main () +{ + led1 = 1; + ticker1.attach(&printV, 0.7); + slf1.attach(&sloyfe1, 0.7); + slf2.attach(&sloyfe2, 0.7); + slf3.attach(&sloyfe3, 0.7); + slf4.attach(&sloyfe4, 0.7); + + while (1) + { + + if (resetb == 1) + { + led1 = led2 = led3 = led4 = 0; + led = 0; + blinkON.detach(); + } + + + + + } +} + + +void printV() +{ + //pc.printf ("ain1 = %f\n\r", s11 * 3.3); + //pc.printf ("ain2 = %f\n\r", s12 * 3.3); + //pc.printf ("%f\n\r", s13 * 3.3); + //pc.printf ("%f\n\r", s14 * 3.3); + +} + +void sloyfe1() +{ + ain1 = (s11 * 3.3); + + if (ain1 > 2.33 && ain1 < 2.28) //Vanlig state + { + pc.printf("OK"); + led = 0; + led1 = 0; + led2 = 0; + led3 = 0; + led4 = 0; + } + else + { + alarm(ain2, 2); + } +} + +void sloyfe2() +{ + ain2 = (s12 * 3.3); + + if (ain2 > 2.33 && ain2 < 2.28) //Vanlig state + { + pc.printf("OK"); + } + else + { + alarm(ain2, 2); + } +} + +void sloyfe3() +{ + ain3 = (s13 * 3.3); + + if (ain3 > 2.33 && ain3 < 2.28) //Vanlig state + { + pc.printf("OK"); + } + else + { + alarm(ain3, 4); + } +} + +void sloyfe4() +{ + ain4 = (s14 * 3.3); + + if (ain4 > 2.33 && ain4 < 2.28) //Vanlig state + { + pc.printf("OK"); + } + else + { + alarm(ain4, 8); + } +} + +void alarm(float value, int who) +{ + if (value > 0.483 && value < 0.474) //Dør 1 og dør 2 åpen + { + pc.printf("Both doors are open in s%d\n\r", who); + led = who; + led3 = 1; + led4 = 1; + + } + + else if (value > 0.879 && value < 0.862) //Dør 1 åpen + { + pc.printf("Door 1 is open in s%d\n\r", who); + led = who; + led3 = 1; + + } + + else if (value > 0.736 && value < 0.721) //Dør 2 åpen + { + pc.printf("Door 2 is open in s%d\n\r", who); + led = who; + led4 = 1; + + } + + else if (value > 2.92 && value < 2.86) //Dør 1 kortsluttet + { + pc.printf("Short Circuit at Door 1 in s%d\n\r", who); + led = who; + led3 = 1; + + } + + else if (value > 2.58 && value < 2.53) //Dør 2 kortsluttet + { + pc.printf("Short Circuit at Door 2 in s%d\n\r", who); + led = who; + led4 = 1; + + + } + + else //Something wrong in wing 1 + { + pc.printf("verdi stemmer ikke %f", ain1); + blinkON.attach(&blink, 0.1); + + } +} + +void blink() +{ + led1 = !led1; +}