wefewf

Dependencies:   mbed

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?

UserRevisionLine numberNew 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 }