Fire Detector with Two Zones

Dependencies:   TextLCD mbed

Fork of TextLCD_HelloWorld by Simon Ford

Committer:
josmy
Date:
Tue Mar 10 11:13:43 2015 +0000
Revision:
3:d23f3885fa07
Parent:
2:ad0b044d0a10
Fire Detector with two zones;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
simon 0:334327d1a416 1 #include "mbed.h"
simon 0:334327d1a416 2 #include "TextLCD.h"
josmy 3:d23f3885fa07 3 #define Maxsamples 50
simon 0:334327d1a416 4
josmy 3:d23f3885fa07 5 Serial pc(SERIAL_TX,SERIAL_RX);
josmy 3:d23f3885fa07 6 Ticker Test;
josmy 3:d23f3885fa07 7 unsigned mydelay;
josmy 3:d23f3885fa07 8 AnalogIn potpin1(PA_0);
josmy 3:d23f3885fa07 9 AnalogIn potpin2(PA_1);
josmy 3:d23f3885fa07 10 AnalogIn batpin(PC_0);
josmy 3:d23f3885fa07 11 AnalogIn Mains(PC_1);
josmy 3:d23f3885fa07 12 DigitalIn itz1k(PB_14);
josmy 3:d23f3885fa07 13 DigitalIn itz2k(PB_13);
josmy 3:d23f3885fa07 14 DigitalIn Userbutton(PA_15);
josmy 3:d23f3885fa07 15 //DigitalIn Reset(PB_9);
josmy 3:d23f3885fa07 16 DigitalIn sbutton(PB_12);
josmy 3:d23f3885fa07 17 DigitalIn silbutton(PB_11);
josmy 3:d23f3885fa07 18 DigitalOut myled(LED1);
josmy 3:d23f3885fa07 19 DigitalOut z1fled(PA_5, 1);
josmy 3:d23f3885fa07 20 DigitalOut z2fled(PA_4, 1);
josmy 3:d23f3885fa07 21 DigitalOut z1ftled(PA_7, 1);
josmy 3:d23f3885fa07 22 DigitalOut z2ftled(PA_6, 1);
josmy 3:d23f3885fa07 23 DigitalOut z1iled(PC_5, 1);
josmy 3:d23f3885fa07 24 DigitalOut z2iled(PC_4,1);
josmy 3:d23f3885fa07 25 DigitalOut silenceled(PB_1, 1);
josmy 3:d23f3885fa07 26 DigitalOut soundled(PB_0, 1);
josmy 3:d23f3885fa07 27 DigitalOut z1testled(PB_10, 1);
josmy 3:d23f3885fa07 28 DigitalOut z2testled(PB_2, 1);
josmy 3:d23f3885fa07 29 DigitalOut hooter(PC_8);
josmy 3:d23f3885fa07 30 DigitalOut buzzer(PA_9);
josmy 3:d23f3885fa07 31 DigitalOut z1r(PB_15);
josmy 3:d23f3885fa07 32 DigitalOut z2r(PC_6);
josmy 3:d23f3885fa07 33 DigitalOut Tx(PA_2);
josmy 3:d23f3885fa07 34 DigitalOut Rx(PA_3);
josmy 3:d23f3885fa07 35 DigitalOut TREN(PA_10);
josmy 3:d23f3885fa07 36 DigitalOut z1drv(PC_9);
josmy 3:d23f3885fa07 37 DigitalOut z2drv(PA_8);
josmy 3:d23f3885fa07 38 DigitalOut fr(PC_7);
josmy 3:d23f3885fa07 39 DigitalOut commonfire(PC_12, 1);
josmy 3:d23f3885fa07 40 uint16_t z1tflag=0;
josmy 3:d23f3885fa07 41 uint16_t z2tflag=0;
josmy 3:d23f3885fa07 42 uint16_t z1iflag=0;
josmy 3:d23f3885fa07 43 uint16_t z2iflag=0;
josmy 3:d23f3885fa07 44 TextLCD lcd(PA_11,PF_6,PF_7,PA_15,PC_10,PC_11);//RW- PA_12,
josmy 3:d23f3885fa07 45 float fval1=0.0;
josmy 3:d23f3885fa07 46 float fval2=0.0;
josmy 3:d23f3885fa07 47 float fval3=0.0;
josmy 3:d23f3885fa07 48 float fval4=0.0;
josmy 3:d23f3885fa07 49 float sense=0.20;
josmy 3:d23f3885fa07 50 //float Zone2sense=2.2;
josmy 3:d23f3885fa07 51 float scsense=2.2;
josmy 3:d23f3885fa07 52 float shortsense = 3.0;
josmy 3:d23f3885fa07 53 float ocsense=0.11;
josmy 3:d23f3885fa07 54 float mains = 2.7;
josmy 3:d23f3885fa07 55 float batsense=2.0;
josmy 3:d23f3885fa07 56 unsigned long val1=0;
josmy 3:d23f3885fa07 57 unsigned long val2=0;
josmy 3:d23f3885fa07 58 unsigned long val3=0;
josmy 3:d23f3885fa07 59 unsigned long val4=0;
josmy 3:d23f3885fa07 60 uint16_t i = 0;
josmy 3:d23f3885fa07 61 uint16_t j = 0;
josmy 3:d23f3885fa07 62 uint16_t it1flag = 0;
josmy 3:d23f3885fa07 63 uint16_t it2flag = 0;
josmy 3:d23f3885fa07 64 int SilFlag, SouFlag;
josmy 3:d23f3885fa07 65 int a;
josmy 3:d23f3885fa07 66 int HBTest;
josmy 3:d23f3885fa07 67 int OCflag;
josmy 3:d23f3885fa07 68 int w, x;
josmy 3:d23f3885fa07 69 void TestISR (void){
josmy 3:d23f3885fa07 70 if (mydelay) mydelay--;
josmy 3:d23f3885fa07 71 }
josmy 3:d23f3885fa07 72
josmy 3:d23f3885fa07 73 void HooterON(void){
josmy 3:d23f3885fa07 74 hooter=1;
josmy 3:d23f3885fa07 75 }
josmy 3:d23f3885fa07 76
josmy 3:d23f3885fa07 77 void BuzzerON(void){
josmy 3:d23f3885fa07 78 buzzer=1;
josmy 3:d23f3885fa07 79 }
josmy 3:d23f3885fa07 80
josmy 3:d23f3885fa07 81 void HooterOFF(void){
josmy 3:d23f3885fa07 82 hooter=0;
josmy 3:d23f3885fa07 83 }
josmy 3:d23f3885fa07 84
josmy 3:d23f3885fa07 85 void BuzzerOFF(void){
josmy 3:d23f3885fa07 86 buzzer=0;
josmy 3:d23f3885fa07 87 }
josmy 3:d23f3885fa07 88
josmy 3:d23f3885fa07 89 void HooterTest(unsigned counter){
josmy 3:d23f3885fa07 90 //if(HBTest == 0)HBTest = 1 ;
josmy 3:d23f3885fa07 91 //if(HBTest == 1){
josmy 3:d23f3885fa07 92 HooterON();
josmy 3:d23f3885fa07 93 BuzzerON();
josmy 3:d23f3885fa07 94 mydelay = counter;
josmy 3:d23f3885fa07 95 while(mydelay);
josmy 3:d23f3885fa07 96 HooterOFF();
josmy 3:d23f3885fa07 97 BuzzerOFF();
josmy 3:d23f3885fa07 98 //mydelay = counter;
josmy 3:d23f3885fa07 99 //while(mydelay);
josmy 3:d23f3885fa07 100 //HBTest = 2;
josmy 3:d23f3885fa07 101 //}
josmy 3:d23f3885fa07 102 }
josmy 3:d23f3885fa07 103
josmy 3:d23f3885fa07 104
josmy 3:d23f3885fa07 105
josmy 3:d23f3885fa07 106
josmy 3:d23f3885fa07 107 void Z1FON(void){
josmy 3:d23f3885fa07 108 z1fled = 0;
josmy 3:d23f3885fa07 109 }
josmy 3:d23f3885fa07 110
josmy 3:d23f3885fa07 111 void Z1FOFF(void){
josmy 3:d23f3885fa07 112 z1fled = 1;
josmy 3:d23f3885fa07 113 }
josmy 3:d23f3885fa07 114
josmy 3:d23f3885fa07 115 void Z2FON(void){
josmy 3:d23f3885fa07 116 z2fled = 0;
josmy 3:d23f3885fa07 117 }
josmy 3:d23f3885fa07 118
josmy 3:d23f3885fa07 119 void Z2FOFF(void){
josmy 3:d23f3885fa07 120 z2fled = 1;
josmy 3:d23f3885fa07 121 }
josmy 3:d23f3885fa07 122
josmy 3:d23f3885fa07 123 void Z1FTON(void){
josmy 3:d23f3885fa07 124 z1ftled = 0;
josmy 3:d23f3885fa07 125 }
josmy 3:d23f3885fa07 126
josmy 3:d23f3885fa07 127 void Z1FTOFF(void){
josmy 3:d23f3885fa07 128 z1ftled = 1;
josmy 3:d23f3885fa07 129 }
josmy 3:d23f3885fa07 130
josmy 3:d23f3885fa07 131
josmy 3:d23f3885fa07 132 void Z2FTON(void){
josmy 3:d23f3885fa07 133 z2ftled = 0;
josmy 3:d23f3885fa07 134 }
josmy 3:d23f3885fa07 135
josmy 3:d23f3885fa07 136 void Z2FTOFF(void){
josmy 3:d23f3885fa07 137 z2ftled = 1;
josmy 3:d23f3885fa07 138 }
josmy 3:d23f3885fa07 139
josmy 3:d23f3885fa07 140 void Z1ION(void){
josmy 3:d23f3885fa07 141 z1iled = 0;
josmy 3:d23f3885fa07 142 }
josmy 3:d23f3885fa07 143
josmy 3:d23f3885fa07 144 void Z1IOFF(void){
josmy 3:d23f3885fa07 145 z1iled = 1;
josmy 3:d23f3885fa07 146 }
josmy 3:d23f3885fa07 147
josmy 3:d23f3885fa07 148
josmy 3:d23f3885fa07 149 void Z2ION(void){
josmy 3:d23f3885fa07 150 z2iled = 0;
josmy 3:d23f3885fa07 151 }
josmy 3:d23f3885fa07 152
josmy 3:d23f3885fa07 153 void Z2IOFF(void){
josmy 3:d23f3885fa07 154 z2iled = 1;
josmy 3:d23f3885fa07 155 }
josmy 3:d23f3885fa07 156
josmy 3:d23f3885fa07 157
josmy 3:d23f3885fa07 158 void SILENCEON(void){
josmy 3:d23f3885fa07 159 silenceled = 0;
josmy 3:d23f3885fa07 160 }
josmy 3:d23f3885fa07 161
josmy 3:d23f3885fa07 162 void SILENCEOFF(void){
josmy 3:d23f3885fa07 163 silenceled = 1;
josmy 3:d23f3885fa07 164 }
josmy 3:d23f3885fa07 165
josmy 3:d23f3885fa07 166
josmy 3:d23f3885fa07 167 void SOUNDON(void){
josmy 3:d23f3885fa07 168 soundled = 0;
josmy 3:d23f3885fa07 169 }
josmy 3:d23f3885fa07 170
josmy 3:d23f3885fa07 171 void SOUNDOFF(void){
josmy 3:d23f3885fa07 172 soundled = 1;
josmy 3:d23f3885fa07 173 }
josmy 3:d23f3885fa07 174
josmy 3:d23f3885fa07 175
josmy 3:d23f3885fa07 176
josmy 3:d23f3885fa07 177 void Z1TESTON(void){
josmy 3:d23f3885fa07 178 z1testled = 0;
josmy 3:d23f3885fa07 179 }
josmy 3:d23f3885fa07 180
josmy 3:d23f3885fa07 181 void Z1TESTOFF(void){
josmy 3:d23f3885fa07 182 z1testled = 1;
josmy 3:d23f3885fa07 183 }
josmy 3:d23f3885fa07 184
josmy 3:d23f3885fa07 185
josmy 3:d23f3885fa07 186 void Z2TESTON(void){
josmy 3:d23f3885fa07 187 z2testled = 0;
josmy 3:d23f3885fa07 188 }
josmy 3:d23f3885fa07 189
josmy 3:d23f3885fa07 190 void Z2TESTOFF(void){
josmy 3:d23f3885fa07 191 z2testled = 1;
josmy 3:d23f3885fa07 192 }
josmy 3:d23f3885fa07 193
josmy 3:d23f3885fa07 194
josmy 3:d23f3885fa07 195
josmy 3:d23f3885fa07 196 void CFIREON(void){
josmy 3:d23f3885fa07 197 commonfire= 0;
josmy 3:d23f3885fa07 198 }
josmy 3:d23f3885fa07 199
josmy 3:d23f3885fa07 200 void CFIREOFF(void){
josmy 3:d23f3885fa07 201 commonfire= 1;
josmy 3:d23f3885fa07 202 }
josmy 3:d23f3885fa07 203
josmy 3:d23f3885fa07 204 void Z1RON(void){
josmy 3:d23f3885fa07 205 z1r = 1;
josmy 3:d23f3885fa07 206 }
josmy 3:d23f3885fa07 207
josmy 3:d23f3885fa07 208 void Z1ROFF(void){
josmy 3:d23f3885fa07 209 z1r = 0;
josmy 3:d23f3885fa07 210 }
josmy 3:d23f3885fa07 211
josmy 3:d23f3885fa07 212 void Z2RON(void){
josmy 3:d23f3885fa07 213 z2r = 1;
josmy 3:d23f3885fa07 214 }
josmy 3:d23f3885fa07 215
josmy 3:d23f3885fa07 216 void Z2ROFF(void){
josmy 3:d23f3885fa07 217 z2r = 0;
josmy 3:d23f3885fa07 218 }
josmy 3:d23f3885fa07 219
josmy 3:d23f3885fa07 220 void FRON(void){
josmy 3:d23f3885fa07 221 fr = 1;
josmy 3:d23f3885fa07 222 }
josmy 3:d23f3885fa07 223
josmy 3:d23f3885fa07 224 void FROFF(void){
josmy 3:d23f3885fa07 225 fr = 0;
josmy 3:d23f3885fa07 226 }
josmy 3:d23f3885fa07 227
josmy 3:d23f3885fa07 228 void avg(void){
josmy 3:d23f3885fa07 229
josmy 3:d23f3885fa07 230
josmy 3:d23f3885fa07 231
josmy 3:d23f3885fa07 232 fval1 = fval2 = fval3= fval4= 0;
josmy 3:d23f3885fa07 233
josmy 3:d23f3885fa07 234 for (int k=1; k<=Maxsamples; k++ ){
josmy 3:d23f3885fa07 235 fval1 += potpin1.read();
josmy 3:d23f3885fa07 236 fval2 += potpin2.read();
josmy 3:d23f3885fa07 237 fval3 += batpin.read();
josmy 3:d23f3885fa07 238 fval4 += Mains.read();
josmy 3:d23f3885fa07 239 }
josmy 3:d23f3885fa07 240 fval1/=Maxsamples;
josmy 3:d23f3885fa07 241 fval2/=Maxsamples;
josmy 3:d23f3885fa07 242 fval3/=Maxsamples;
josmy 3:d23f3885fa07 243 fval4/=Maxsamples;
josmy 3:d23f3885fa07 244
josmy 3:d23f3885fa07 245 fval1 = fval1 *3.3;
josmy 3:d23f3885fa07 246 fval2 = fval2 *3.3;
josmy 3:d23f3885fa07 247 fval3 = fval3 *3.3;
josmy 3:d23f3885fa07 248 fval4 = fval4 *3.3;
josmy 3:d23f3885fa07 249
josmy 3:d23f3885fa07 250 }
josmy 3:d23f3885fa07 251
josmy 3:d23f3885fa07 252 void Autofirez1_test(void){
josmy 3:d23f3885fa07 253 avg();
josmy 3:d23f3885fa07 254 //if ((fval1>=sense) && (fval1<3.0)){
josmy 3:d23f3885fa07 255 if ((fval1>=0.11) && (fval1 < 3.0)){
josmy 3:d23f3885fa07 256 //lcd.locate(0,0);
josmy 3:d23f3885fa07 257 //lcd.printf("Fire Zn1 ");
josmy 3:d23f3885fa07 258 Z1FON();
josmy 3:d23f3885fa07 259 Z1RON();
josmy 3:d23f3885fa07 260 CFIREON();
josmy 3:d23f3885fa07 261 if((SilFlag == 0)){
josmy 3:d23f3885fa07 262 HooterTest(6);
josmy 3:d23f3885fa07 263 }
josmy 3:d23f3885fa07 264
josmy 3:d23f3885fa07 265 z1drv =0;
josmy 3:d23f3885fa07 266 wait(1);
josmy 3:d23f3885fa07 267 z1drv =1;
josmy 3:d23f3885fa07 268
josmy 3:d23f3885fa07 269 //HooterTest(6);
josmy 3:d23f3885fa07 270
josmy 3:d23f3885fa07 271 }
josmy 3:d23f3885fa07 272 else{
josmy 3:d23f3885fa07 273 //lcd.locate(0,0);
josmy 3:d23f3885fa07 274 //lcd.printf(" ");
josmy 3:d23f3885fa07 275 //HooterOFF();
josmy 3:d23f3885fa07 276 //BuzzerOFF();
josmy 3:d23f3885fa07 277 //Z1FOFF();
josmy 3:d23f3885fa07 278 //CFIREOFF();
josmy 3:d23f3885fa07 279 Z1ROFF();
josmy 3:d23f3885fa07 280 }
josmy 3:d23f3885fa07 281 }
josmy 3:d23f3885fa07 282 void IsolateZ1(void){
josmy 3:d23f3885fa07 283 Z1FOFF();
josmy 3:d23f3885fa07 284 Z1ROFF();
josmy 3:d23f3885fa07 285 }
josmy 3:d23f3885fa07 286 void Autofirez1(void){
josmy 3:d23f3885fa07 287 avg();
josmy 3:d23f3885fa07 288 //if ((fval1>=sense) && (fval1<3.0)){
josmy 3:d23f3885fa07 289 if ((fval1>=0.11) && (fval1 < 3.0)){
josmy 3:d23f3885fa07 290 Z1RON();
josmy 3:d23f3885fa07 291 lcd.locate(0,0);
josmy 3:d23f3885fa07 292 lcd.printf("Fire Zn1 ");
josmy 3:d23f3885fa07 293 Z1FON();
josmy 3:d23f3885fa07 294 if((SilFlag == 0)){
josmy 3:d23f3885fa07 295 //if(z2iflag != 1){
josmy 3:d23f3885fa07 296 HooterON();
josmy 3:d23f3885fa07 297 BuzzerON();
josmy 3:d23f3885fa07 298 //}
josmy 3:d23f3885fa07 299 }
josmy 3:d23f3885fa07 300 CFIREON();
josmy 3:d23f3885fa07 301 }
josmy 3:d23f3885fa07 302 else{
josmy 3:d23f3885fa07 303 //lcd.locate(0,0);
josmy 3:d23f3885fa07 304 //lcd.printf(" ");
josmy 3:d23f3885fa07 305 //HooterOFF();
josmy 3:d23f3885fa07 306 //BuzzerOFF();
josmy 3:d23f3885fa07 307 //CFIREOFF();
josmy 3:d23f3885fa07 308 //Z1FOFF();
josmy 3:d23f3885fa07 309 Z1ROFF();
josmy 3:d23f3885fa07 310 }
josmy 3:d23f3885fa07 311 }
josmy 3:d23f3885fa07 312
josmy 3:d23f3885fa07 313 void Autofirez2(){
josmy 3:d23f3885fa07 314 avg();
josmy 3:d23f3885fa07 315 //if ((fval2>=sense) && (fval2<3.0)){
josmy 3:d23f3885fa07 316 if ((fval2>=0.11) && (fval2 < 3.0)){
josmy 3:d23f3885fa07 317 Z2RON();
josmy 3:d23f3885fa07 318 lcd.locate(0,1);
josmy 3:d23f3885fa07 319 lcd.printf("Fire Zn2 ");
josmy 3:d23f3885fa07 320 if((fval1>=0.003) && (fval1 < 0.09) && (z1iflag != 1) && (z1tflag != 1)){
josmy 3:d23f3885fa07 321 lcd.locate(0,0);
josmy 3:d23f3885fa07 322 lcd.printf(" ");
josmy 3:d23f3885fa07 323
josmy 3:d23f3885fa07 324 }
josmy 3:d23f3885fa07 325 Z2FON();
josmy 3:d23f3885fa07 326 if((SilFlag == 0)){
josmy 3:d23f3885fa07 327 //if(z1iflag != 1){
josmy 3:d23f3885fa07 328 HooterON();
josmy 3:d23f3885fa07 329 BuzzerON();
josmy 3:d23f3885fa07 330 //}
josmy 3:d23f3885fa07 331 }
josmy 3:d23f3885fa07 332 CFIREON();
josmy 3:d23f3885fa07 333 }
josmy 3:d23f3885fa07 334 else{
josmy 3:d23f3885fa07 335 //lcd.locate(0,1);
josmy 3:d23f3885fa07 336 //lcd.printf(" ");
josmy 3:d23f3885fa07 337 //HooterOFF();
josmy 3:d23f3885fa07 338 //BuzzerOFF();
josmy 3:d23f3885fa07 339 //CFIREOFF();
josmy 3:d23f3885fa07 340 //Z2FOFF();
josmy 3:d23f3885fa07 341 Z2ROFF();
josmy 3:d23f3885fa07 342 }
josmy 3:d23f3885fa07 343 }
josmy 3:d23f3885fa07 344
josmy 3:d23f3885fa07 345 void Autofirez2_test(){
josmy 3:d23f3885fa07 346 avg();
josmy 3:d23f3885fa07 347 //if ((fval2>=sense) && (fval2<3.0)){
josmy 3:d23f3885fa07 348 if ((fval2>=0.11) && (fval2 < 3.0)){
josmy 3:d23f3885fa07 349 //lcd.locate(0,1);
josmy 3:d23f3885fa07 350 //lcd.printf("Fire Zn2 ");
josmy 3:d23f3885fa07 351 if((fval1>=0.003) && (fval1 < 0.09) && (z1iflag != 1) && (z1tflag != 1)){
josmy 3:d23f3885fa07 352 lcd.locate(0,0);
josmy 3:d23f3885fa07 353 lcd.printf(" ");
josmy 3:d23f3885fa07 354
josmy 3:d23f3885fa07 355 }
josmy 3:d23f3885fa07 356
josmy 3:d23f3885fa07 357 Z2FON();
josmy 3:d23f3885fa07 358 CFIREON();
josmy 3:d23f3885fa07 359 Z2RON();
josmy 3:d23f3885fa07 360 if((SilFlag == 0)){
josmy 3:d23f3885fa07 361 HooterTest(6);
josmy 3:d23f3885fa07 362 }
josmy 3:d23f3885fa07 363
josmy 3:d23f3885fa07 364 z2drv =0;
josmy 3:d23f3885fa07 365 wait(1);
josmy 3:d23f3885fa07 366 z2drv =1;
josmy 3:d23f3885fa07 367
josmy 3:d23f3885fa07 368
josmy 3:d23f3885fa07 369 //HooterTest(6);
josmy 3:d23f3885fa07 370
josmy 3:d23f3885fa07 371 //BuzzerON();
josmy 3:d23f3885fa07 372 }
josmy 3:d23f3885fa07 373 else{
josmy 3:d23f3885fa07 374 //lcd.locate(0,1);
josmy 3:d23f3885fa07 375 //lcd.printf(" ");
josmy 3:d23f3885fa07 376 //HooterOFF();
josmy 3:d23f3885fa07 377 //BuzzerOFF();
josmy 3:d23f3885fa07 378 //CFIREOFF();
josmy 3:d23f3885fa07 379 //Z2FOFF();
josmy 3:d23f3885fa07 380 Z2ROFF();
josmy 3:d23f3885fa07 381 }
josmy 3:d23f3885fa07 382 }
josmy 3:d23f3885fa07 383
josmy 3:d23f3885fa07 384 void IsolateZ2(void){
josmy 3:d23f3885fa07 385 Z2FOFF();
josmy 3:d23f3885fa07 386 Z2ROFF();
josmy 3:d23f3885fa07 387 }
josmy 3:d23f3885fa07 388 void firepanel(void){
josmy 3:d23f3885fa07 389
josmy 3:d23f3885fa07 390 if ((z1iflag != 1) && (z2iflag != 1) && (z1tflag != 1) && (z2tflag != 1)){
josmy 3:d23f3885fa07 391 avg();
josmy 3:d23f3885fa07 392 if (((fval1>=0.001) && (fval1<0.09)) && ((fval2>=0.001) && (fval2<0.09))){
josmy 3:d23f3885fa07 393 wait_ms(10);
josmy 3:d23f3885fa07 394 avg();
josmy 3:d23f3885fa07 395 if (((fval1>=0.001) && (fval1<0.09)) && ((fval2>=0.001) && (fval2<0.09))){
josmy 3:d23f3885fa07 396
josmy 3:d23f3885fa07 397 lcd.locate(0,0);
josmy 3:d23f3885fa07 398 lcd.printf("Normal ");
josmy 3:d23f3885fa07 399 //lcd.locate(0,1);
josmy 3:d23f3885fa07 400 //lcd.printf(" ");
josmy 3:d23f3885fa07 401
josmy 3:d23f3885fa07 402
josmy 3:d23f3885fa07 403 }
josmy 3:d23f3885fa07 404 }
josmy 3:d23f3885fa07 405
josmy 3:d23f3885fa07 406 //else if((fval1>=0.003) && (fval1<0.15) && (fval2<0.001)){
josmy 3:d23f3885fa07 407 // lcd.locate(0,0);
josmy 3:d23f3885fa07 408 // lcd.printf(" ");
josmy 3:d23f3885fa07 409
josmy 3:d23f3885fa07 410 //}
josmy 3:d23f3885fa07 411 }
josmy 3:d23f3885fa07 412
josmy 3:d23f3885fa07 413 }
josmy 3:d23f3885fa07 414
josmy 3:d23f3885fa07 415 void Shortz1 (void) {
josmy 3:d23f3885fa07 416 avg();
josmy 3:d23f3885fa07 417 if (fval1>=3.20){
josmy 3:d23f3885fa07 418 lcd.locate(0,0);
josmy 3:d23f3885fa07 419 lcd.printf("Short Zn1");
josmy 3:d23f3885fa07 420 Z1FTON();
josmy 3:d23f3885fa07 421 //HooterON();
josmy 3:d23f3885fa07 422 //BuzzerON();
josmy 3:d23f3885fa07 423 FRON();
josmy 3:d23f3885fa07 424
josmy 3:d23f3885fa07 425 if((SouFlag != 1) && (fval2 >= 0.003) && (fval2 < 0.09)){
josmy 3:d23f3885fa07 426 HooterOFF();
josmy 3:d23f3885fa07 427 CFIREOFF();
josmy 3:d23f3885fa07 428 }
josmy 3:d23f3885fa07 429 if((SilFlag == 0)){
josmy 3:d23f3885fa07 430 BuzzerON();
josmy 3:d23f3885fa07 431 }
josmy 3:d23f3885fa07 432 }
josmy 3:d23f3885fa07 433 else {
josmy 3:d23f3885fa07 434 //lcd.locate(9,0);
josmy 3:d23f3885fa07 435 //lcd.printf(" ");
josmy 3:d23f3885fa07 436
josmy 3:d23f3885fa07 437 //Z1FTOFF();
josmy 3:d23f3885fa07 438 //FROFF();
josmy 3:d23f3885fa07 439 }
josmy 3:d23f3885fa07 440 }
josmy 3:d23f3885fa07 441
josmy 3:d23f3885fa07 442 void Shortz2(void){
josmy 3:d23f3885fa07 443 avg();
josmy 3:d23f3885fa07 444 if(fval2 >= 3.20) {
josmy 3:d23f3885fa07 445 lcd.locate(0,1);
josmy 3:d23f3885fa07 446 lcd.printf("Short Zn2");
josmy 3:d23f3885fa07 447 Z2FTON();
josmy 3:d23f3885fa07 448 if((SouFlag != 1) && (fval1 >= 0.003) && (fval1 < 0.09)){
josmy 3:d23f3885fa07 449 HooterOFF();
josmy 3:d23f3885fa07 450 CFIREOFF();
josmy 3:d23f3885fa07 451 }
josmy 3:d23f3885fa07 452
josmy 3:d23f3885fa07 453 if((SilFlag == 0)){
josmy 3:d23f3885fa07 454 BuzzerON();
josmy 3:d23f3885fa07 455 }
josmy 3:d23f3885fa07 456 //HooterON();
josmy 3:d23f3885fa07 457 //BuzzerON();
josmy 3:d23f3885fa07 458 FRON();
josmy 3:d23f3885fa07 459
josmy 3:d23f3885fa07 460 }
josmy 3:d23f3885fa07 461 else{
josmy 3:d23f3885fa07 462 //Z2FTOFF();
josmy 3:d23f3885fa07 463 //FROFF();
josmy 3:d23f3885fa07 464 //lcd.locate(9,1);
josmy 3:d23f3885fa07 465 //lcd.printf(" ");
josmy 3:d23f3885fa07 466
josmy 3:d23f3885fa07 467 }
josmy 3:d23f3885fa07 468 }
josmy 3:d23f3885fa07 469
josmy 3:d23f3885fa07 470 void battery(void){
josmy 3:d23f3885fa07 471 avg();
josmy 3:d23f3885fa07 472 if (fval3<1.8){
josmy 3:d23f3885fa07 473 lcd.locate(10,0);
josmy 3:d23f3885fa07 474 lcd.printf("BatLow");
josmy 3:d23f3885fa07 475 if((SilFlag == 0)){
josmy 3:d23f3885fa07 476 BuzzerON();
josmy 3:d23f3885fa07 477 }
josmy 3:d23f3885fa07 478 FRON();
josmy 3:d23f3885fa07 479 //BuzzerON();
josmy 3:d23f3885fa07 480 }
josmy 3:d23f3885fa07 481 else {
josmy 3:d23f3885fa07 482 lcd.locate(10,0);
josmy 3:d23f3885fa07 483 lcd.printf(" ");
josmy 3:d23f3885fa07 484 //BuzzerOFF();
josmy 3:d23f3885fa07 485
josmy 3:d23f3885fa07 486 }
josmy 3:d23f3885fa07 487 }
josmy 3:d23f3885fa07 488
simon 0:334327d1a416 489
josmy 3:d23f3885fa07 490 void opencircuitz1(void){
josmy 3:d23f3885fa07 491 avg();
josmy 3:d23f3885fa07 492 if (fval1<0.00009){
josmy 3:d23f3885fa07 493 OCflag = 1;
josmy 3:d23f3885fa07 494 lcd.locate(0,0);
josmy 3:d23f3885fa07 495 lcd.printf("Open Zn1 ");
josmy 3:d23f3885fa07 496 Z1FTON();
josmy 3:d23f3885fa07 497 FRON();
josmy 3:d23f3885fa07 498
josmy 3:d23f3885fa07 499 if((SilFlag == 0)){
josmy 3:d23f3885fa07 500 BuzzerON();
josmy 3:d23f3885fa07 501 }
josmy 3:d23f3885fa07 502 if((SouFlag != 1) && (fval2 >= 0.003) && (fval2 < 0.09)){
josmy 3:d23f3885fa07 503 HooterOFF();
josmy 3:d23f3885fa07 504 CFIREOFF();
josmy 3:d23f3885fa07 505 }
josmy 3:d23f3885fa07 506
josmy 3:d23f3885fa07 507 //BuzzerON();
josmy 3:d23f3885fa07 508 //HooterON();
josmy 3:d23f3885fa07 509 }
josmy 3:d23f3885fa07 510 else
josmy 3:d23f3885fa07 511 if((fval1>0.003) && (fval1<0.09)){
josmy 3:d23f3885fa07 512 OCflag = 0;
josmy 3:d23f3885fa07 513 lcd.locate(0,0);
josmy 3:d23f3885fa07 514 //lcd.printf(" ");
josmy 3:d23f3885fa07 515
josmy 3:d23f3885fa07 516 //BuzzerOFF();
josmy 3:d23f3885fa07 517 //HooterOFF();
josmy 3:d23f3885fa07 518 //Z1FTOFF();
josmy 3:d23f3885fa07 519 //FROFF();
josmy 3:d23f3885fa07 520 }
josmy 3:d23f3885fa07 521 }
josmy 3:d23f3885fa07 522
josmy 3:d23f3885fa07 523 void opencircuitz2(void){
josmy 3:d23f3885fa07 524 avg();
josmy 3:d23f3885fa07 525 if (fval2<0.00009) {
josmy 3:d23f3885fa07 526 lcd.locate(0,1);
josmy 3:d23f3885fa07 527 lcd.printf("Open Zn2 ");
josmy 3:d23f3885fa07 528 Z2FTON();
josmy 3:d23f3885fa07 529 //BuzzerON();
josmy 3:d23f3885fa07 530 //HooterON();
josmy 3:d23f3885fa07 531 FRON();
josmy 3:d23f3885fa07 532
josmy 3:d23f3885fa07 533 if((SilFlag == 0)){
josmy 3:d23f3885fa07 534 BuzzerON();
josmy 3:d23f3885fa07 535 }
josmy 3:d23f3885fa07 536 if((SouFlag != 1) && (fval1 >= 0.003) && (fval1 < 0.09)){
josmy 3:d23f3885fa07 537 HooterOFF();
josmy 3:d23f3885fa07 538 CFIREOFF();
josmy 3:d23f3885fa07 539 }
josmy 3:d23f3885fa07 540
josmy 3:d23f3885fa07 541 }
josmy 3:d23f3885fa07 542 else
josmy 3:d23f3885fa07 543 if((fval2>=0.003) && (fval2<0.09)){
josmy 3:d23f3885fa07 544 if(z2tflag !=1){
josmy 3:d23f3885fa07 545 lcd.locate(0,1);
josmy 3:d23f3885fa07 546 lcd.printf(" ");
josmy 3:d23f3885fa07 547 }
josmy 3:d23f3885fa07 548
josmy 3:d23f3885fa07 549 //BuzzerOFF();
josmy 3:d23f3885fa07 550 //HooterOFF();
josmy 3:d23f3885fa07 551 //Z2FTOFF();
josmy 3:d23f3885fa07 552 //lcd.locate(9,1);
josmy 3:d23f3885fa07 553 //lcd.printf(" ");
josmy 3:d23f3885fa07 554
josmy 3:d23f3885fa07 555 }
josmy 3:d23f3885fa07 556 if((fval2<0.00009) && (fval1>0.003) && (fval1<0.09)) {//C
josmy 3:d23f3885fa07 557 if((z1tflag != 1) && (z1iflag !=1)){
josmy 3:d23f3885fa07 558 lcd.locate(0,0);
josmy 3:d23f3885fa07 559 lcd.printf(" ");
josmy 3:d23f3885fa07 560 }
josmy 3:d23f3885fa07 561 }
josmy 3:d23f3885fa07 562 }
josmy 3:d23f3885fa07 563
josmy 3:d23f3885fa07 564 void ACFail(void){
josmy 3:d23f3885fa07 565 avg();
josmy 3:d23f3885fa07 566 if (fval4<2.4){
josmy 3:d23f3885fa07 567 //lcd.locate(0,0);
josmy 3:d23f3885fa07 568 //lcd.printf("AC FAIL");
josmy 3:d23f3885fa07 569 // Z1FT();
josmy 3:d23f3885fa07 570 //BuzzerON();
josmy 3:d23f3885fa07 571 lcd.locate(10,1);
josmy 3:d23f3885fa07 572 lcd.printf("ACFAIL");
josmy 3:d23f3885fa07 573 if((SilFlag == 0)){
josmy 3:d23f3885fa07 574 BuzzerON();
josmy 3:d23f3885fa07 575 }
josmy 3:d23f3885fa07 576 FRON();
josmy 3:d23f3885fa07 577 //Z1FT();
josmy 3:d23f3885fa07 578 //BuzzerON();
josmy 3:d23f3885fa07 579 }
josmy 3:d23f3885fa07 580 else {
josmy 3:d23f3885fa07 581 lcd.locate(10,1);
josmy 3:d23f3885fa07 582 lcd.printf(" ");
josmy 3:d23f3885fa07 583 //BuzzerOFF();
josmy 3:d23f3885fa07 584
josmy 3:d23f3885fa07 585 }
josmy 3:d23f3885fa07 586 }
josmy 3:d23f3885fa07 587
josmy 3:d23f3885fa07 588
josmy 3:d23f3885fa07 589
josmy 3:d23f3885fa07 590
josmy 3:d23f3885fa07 591 void isolation(void){
josmy 3:d23f3885fa07 592 if (z1iflag == 1){
josmy 3:d23f3885fa07 593 Z1ION();
josmy 3:d23f3885fa07 594 }
josmy 3:d23f3885fa07 595 else{
josmy 3:d23f3885fa07 596 Z1IOFF();
josmy 3:d23f3885fa07 597 }
josmy 3:d23f3885fa07 598 if (z2iflag == 1){
josmy 3:d23f3885fa07 599 Z2ION();
josmy 3:d23f3885fa07 600 }
josmy 3:d23f3885fa07 601 else{
josmy 3:d23f3885fa07 602 Z2IOFF();
josmy 3:d23f3885fa07 603 }
josmy 3:d23f3885fa07 604 }
josmy 3:d23f3885fa07 605
josmy 3:d23f3885fa07 606 void TEST(void){
josmy 3:d23f3885fa07 607 if(z1tflag == 1){
josmy 3:d23f3885fa07 608 Z1TESTON();
josmy 3:d23f3885fa07 609 }
josmy 3:d23f3885fa07 610 else{
josmy 3:d23f3885fa07 611 Z1TESTOFF();
josmy 3:d23f3885fa07 612 }
josmy 3:d23f3885fa07 613 if(z2tflag == 1){
josmy 3:d23f3885fa07 614 Z2TESTON();
josmy 3:d23f3885fa07 615 }
josmy 3:d23f3885fa07 616 else{
josmy 3:d23f3885fa07 617 Z2TESTOFF();
josmy 3:d23f3885fa07 618 }
josmy 3:d23f3885fa07 619
josmy 3:d23f3885fa07 620
josmy 3:d23f3885fa07 621
josmy 3:d23f3885fa07 622 }
josmy 3:d23f3885fa07 623
josmy 3:d23f3885fa07 624
josmy 3:d23f3885fa07 625 void itkey1(void){
josmy 3:d23f3885fa07 626 if(itz1k == 0){
josmy 3:d23f3885fa07 627 a++;
josmy 3:d23f3885fa07 628 w++;
josmy 3:d23f3885fa07 629 if ((a >= 1) &&(a < 2)){
josmy 3:d23f3885fa07 630 z1iflag=1;
josmy 3:d23f3885fa07 631 }
josmy 3:d23f3885fa07 632 if(a > 2){
josmy 3:d23f3885fa07 633 z1iflag=0;
josmy 3:d23f3885fa07 634 }
josmy 3:d23f3885fa07 635 if(w>=10 && w<20){
josmy 3:d23f3885fa07 636 z1tflag=1;
josmy 3:d23f3885fa07 637 }
josmy 3:d23f3885fa07 638 if (w>=20){
josmy 3:d23f3885fa07 639 z1tflag=0;
josmy 3:d23f3885fa07 640 }
josmy 3:d23f3885fa07 641 if(a > 21) a = 0;
josmy 3:d23f3885fa07 642 if(w > 21) w = 0;
josmy 3:d23f3885fa07 643 }
josmy 3:d23f3885fa07 644 }
josmy 3:d23f3885fa07 645 void itkey2(void){
josmy 3:d23f3885fa07 646 if(itz2k == 0){
josmy 3:d23f3885fa07 647 j++;
josmy 3:d23f3885fa07 648 x++;
josmy 3:d23f3885fa07 649 if ((j >= 1) && (j < 2)){
josmy 3:d23f3885fa07 650 z2iflag=1;
josmy 3:d23f3885fa07 651 }
josmy 3:d23f3885fa07 652 if(j > 2){
josmy 3:d23f3885fa07 653 z2iflag=0;
josmy 3:d23f3885fa07 654 }
josmy 3:d23f3885fa07 655 if(x>=10 && x<20){
josmy 3:d23f3885fa07 656 z2tflag=1;
josmy 3:d23f3885fa07 657 }
josmy 3:d23f3885fa07 658 if (x>=20){
josmy 3:d23f3885fa07 659 z2tflag=0;
josmy 3:d23f3885fa07 660 }
josmy 3:d23f3885fa07 661 if(j >21) j = 0;
josmy 3:d23f3885fa07 662 if(x >21) x = 0;
josmy 3:d23f3885fa07 663 }
josmy 3:d23f3885fa07 664 }
josmy 3:d23f3885fa07 665 /*
josmy 3:d23f3885fa07 666 void Reset_in(void){
josmy 3:d23f3885fa07 667 if (Reset ==0){
josmy 3:d23f3885fa07 668 NVIC_SystemReset();
josmy 3:d23f3885fa07 669 }
josmy 3:d23f3885fa07 670 }
josmy 3:d23f3885fa07 671 */
josmy 3:d23f3885fa07 672
josmy 3:d23f3885fa07 673 void sound (void){
josmy 3:d23f3885fa07 674 if (sbutton == 0){
josmy 3:d23f3885fa07 675 SouFlag = 1;
josmy 3:d23f3885fa07 676 }
josmy 3:d23f3885fa07 677 if(SouFlag == 1){
josmy 3:d23f3885fa07 678 SilFlag = 0;
josmy 3:d23f3885fa07 679 SOUNDON();
josmy 3:d23f3885fa07 680
josmy 3:d23f3885fa07 681 avg();
josmy 3:d23f3885fa07 682 if((fval1>=0.00) || (fval2>=0.00)){
josmy 3:d23f3885fa07 683 HooterON();
josmy 3:d23f3885fa07 684 BuzzerON();
josmy 3:d23f3885fa07 685 }
josmy 3:d23f3885fa07 686 //else{
josmy 3:d23f3885fa07 687 //HooterOFF();
josmy 3:d23f3885fa07 688 //BuzzerOFF();
josmy 3:d23f3885fa07 689 //SOUNDOFF();
josmy 3:d23f3885fa07 690 //}
josmy 3:d23f3885fa07 691 }
josmy 3:d23f3885fa07 692 else SOUNDOFF();
josmy 3:d23f3885fa07 693
josmy 3:d23f3885fa07 694
simon 0:334327d1a416 695 }
josmy 3:d23f3885fa07 696
josmy 3:d23f3885fa07 697 void silence (void){
josmy 3:d23f3885fa07 698 if (silbutton==0){
josmy 3:d23f3885fa07 699 SilFlag = 1;
josmy 3:d23f3885fa07 700 }
josmy 3:d23f3885fa07 701 if(SilFlag == 1){
josmy 3:d23f3885fa07 702 SouFlag = 0;
josmy 3:d23f3885fa07 703 HooterOFF();
josmy 3:d23f3885fa07 704 BuzzerOFF();
josmy 3:d23f3885fa07 705 SILENCEON();
josmy 3:d23f3885fa07 706 }
josmy 3:d23f3885fa07 707 else{
josmy 3:d23f3885fa07 708 SILENCEOFF();
josmy 3:d23f3885fa07 709 }
josmy 3:d23f3885fa07 710
josmy 3:d23f3885fa07 711 }
josmy 3:d23f3885fa07 712
josmy 3:d23f3885fa07 713 void HBOFF(void){
josmy 3:d23f3885fa07 714 avg();
josmy 3:d23f3885fa07 715 if((SouFlag != 1) && (fval1 >= 0.003) && (fval1 < 0.09) && (fval2 >= 0.003) && (fval2 < 0.09) && (fval3 >= 1.9) && (fval4 >= 2.5)){
josmy 3:d23f3885fa07 716 HooterOFF();
josmy 3:d23f3885fa07 717 BuzzerOFF();
josmy 3:d23f3885fa07 718 CFIREOFF();
josmy 3:d23f3885fa07 719 }
josmy 3:d23f3885fa07 720 avg();
josmy 3:d23f3885fa07 721 if((SouFlag != 1) && ((fval1 >= 3.2) || (fval1 < 0.00009)) && ((fval2 >= 3.2) || (fval2 < 0.00009))){//C
josmy 3:d23f3885fa07 722 HooterOFF();
josmy 3:d23f3885fa07 723 CFIREOFF();
josmy 3:d23f3885fa07 724 }
josmy 3:d23f3885fa07 725 }
josmy 3:d23f3885fa07 726
josmy 3:d23f3885fa07 727 void FaultOFF(){
josmy 3:d23f3885fa07 728 avg();
josmy 3:d23f3885fa07 729 if((fval1 >= 0.003) && (fval1 < 3.00) && (fval2 >= 0.003) && (fval2 < 3.00) && (fval3 >= 1.9) && (fval4 >= 2.5)){
josmy 3:d23f3885fa07 730 wait_ms(10);
josmy 3:d23f3885fa07 731 if((fval1 >= 0.003) && (fval1 < 3.00) && (fval2 >= 0.003) && (fval2 < 3.00) && (fval3 >= 1.9) && (fval4 >= 2.5)){
josmy 3:d23f3885fa07 732 FROFF();
josmy 3:d23f3885fa07 733 }
josmy 3:d23f3885fa07 734 }
josmy 3:d23f3885fa07 735 if((fval1 >= 0.003) && (fval1 < 3.00)) {
josmy 3:d23f3885fa07 736 wait_ms(10);
josmy 3:d23f3885fa07 737 if((fval1 > 0.003) && (fval1 < 3.00)) {
josmy 3:d23f3885fa07 738 Z1FTOFF();
josmy 3:d23f3885fa07 739 //lcd.locate(9,0);
josmy 3:d23f3885fa07 740 //lcd.printf(" ");
josmy 3:d23f3885fa07 741
josmy 3:d23f3885fa07 742 }
josmy 3:d23f3885fa07 743 }
josmy 3:d23f3885fa07 744 if((fval2 >= 0.003) && (fval2 < 3.00)) {
josmy 3:d23f3885fa07 745 wait_ms(10);
josmy 3:d23f3885fa07 746 if((fval2 >= 0.003) && (fval2 < 3.00)) {
josmy 3:d23f3885fa07 747 Z2FTOFF();
josmy 3:d23f3885fa07 748 //lcd.locate(9,1);
josmy 3:d23f3885fa07 749 //lcd.printf(" ");
josmy 3:d23f3885fa07 750
josmy 3:d23f3885fa07 751 }
josmy 3:d23f3885fa07 752 }
josmy 3:d23f3885fa07 753 }
josmy 3:d23f3885fa07 754
josmy 3:d23f3885fa07 755
josmy 3:d23f3885fa07 756 void FireOFF(void){
josmy 3:d23f3885fa07 757 avg();
josmy 3:d23f3885fa07 758 if(fval1 < 0.17)Z1FOFF();
josmy 3:d23f3885fa07 759 if(fval2 < 0.17)Z2FOFF();
josmy 3:d23f3885fa07 760 }
josmy 3:d23f3885fa07 761
josmy 3:d23f3885fa07 762 void HBIOFF(void){
josmy 3:d23f3885fa07 763
josmy 3:d23f3885fa07 764 if((z1iflag == 0) && (z2iflag == 1)){
josmy 3:d23f3885fa07 765 avg();
josmy 3:d23f3885fa07 766 if((fval1 >= 0.003) && (fval1 < 0.09)){
josmy 3:d23f3885fa07 767
josmy 3:d23f3885fa07 768 if(SouFlag != 1){
josmy 3:d23f3885fa07 769 //HooterOFF();
josmy 3:d23f3885fa07 770 //BuzzerOFF();
josmy 3:d23f3885fa07 771 //CFIREOFF();
josmy 3:d23f3885fa07 772 }
josmy 3:d23f3885fa07 773 }
josmy 3:d23f3885fa07 774 }
josmy 3:d23f3885fa07 775 if((z1iflag == 1) && (z2iflag == 0)){
josmy 3:d23f3885fa07 776 avg();
josmy 3:d23f3885fa07 777 if((fval2 >= 0.003) && (fval2 < 1.5)){
josmy 3:d23f3885fa07 778
josmy 3:d23f3885fa07 779 if(SouFlag != 1){
josmy 3:d23f3885fa07 780 //HooterOFF();
josmy 3:d23f3885fa07 781 //BuzzerOFF();
josmy 3:d23f3885fa07 782 //CFIREOFF();
josmy 3:d23f3885fa07 783 }
josmy 3:d23f3885fa07 784 }
josmy 3:d23f3885fa07 785 }
josmy 3:d23f3885fa07 786
josmy 3:d23f3885fa07 787 if((z1iflag == 1) && (z2iflag == 1)){
josmy 3:d23f3885fa07 788
josmy 3:d23f3885fa07 789 if(SouFlag != 1){
josmy 3:d23f3885fa07 790 HooterOFF();
josmy 3:d23f3885fa07 791 BuzzerOFF();
josmy 3:d23f3885fa07 792 CFIREOFF();
josmy 3:d23f3885fa07 793 }
josmy 3:d23f3885fa07 794 }
josmy 3:d23f3885fa07 795
josmy 3:d23f3885fa07 796
josmy 3:d23f3885fa07 797 /*
josmy 3:d23f3885fa07 798 if((z1iflag != 0) || (z2iflag != 0)){
josmy 3:d23f3885fa07 799 //avg();
josmy 3:d23f3885fa07 800 //if((fval1 > 0.10) || (fval2 > 0.10)){
josmy 3:d23f3885fa07 801 if(((z1iflag == 1) || (z1iflag == 0))&& ((z2iflag == 1) || (z2iflag == 0))){
josmy 3:d23f3885fa07 802 HooterOFF();
josmy 3:d23f3885fa07 803 BuzzerOFF();
josmy 3:d23f3885fa07 804 CFIREOFF();
josmy 3:d23f3885fa07 805 }
josmy 3:d23f3885fa07 806 //}
josmy 3:d23f3885fa07 807 }
josmy 3:d23f3885fa07 808 */
josmy 3:d23f3885fa07 809 }
josmy 3:d23f3885fa07 810
josmy 3:d23f3885fa07 811 int main(){
josmy 3:d23f3885fa07 812 /*
josmy 3:d23f3885fa07 813 while(1){
josmy 3:d23f3885fa07 814 myled = !myled;
josmy 3:d23f3885fa07 815 wait_ms(100);
josmy 3:d23f3885fa07 816 }
josmy 3:d23f3885fa07 817
josmy 3:d23f3885fa07 818 unsigned int i;
josmy 3:d23f3885fa07 819
josmy 3:d23f3885fa07 820 while(1){
josmy 3:d23f3885fa07 821 Z1FOFF();
josmy 3:d23f3885fa07 822
josmy 3:d23f3885fa07 823 lcd.locate(0,0);
josmy 3:d23f3885fa07 824 lcd.printf("%u",i);
josmy 3:d23f3885fa07 825 wait_ms(100);
josmy 3:d23f3885fa07 826 i++;
josmy 3:d23f3885fa07 827 Z1FON();
josmy 3:d23f3885fa07 828
josmy 3:d23f3885fa07 829 }
josmy 3:d23f3885fa07 830 */
josmy 3:d23f3885fa07 831
josmy 3:d23f3885fa07 832
josmy 3:d23f3885fa07 833
josmy 3:d23f3885fa07 834
josmy 3:d23f3885fa07 835 Z1FOFF();
josmy 3:d23f3885fa07 836 Z2FOFF();
josmy 3:d23f3885fa07 837 Z1FTOFF();
josmy 3:d23f3885fa07 838 Z2FTOFF();
josmy 3:d23f3885fa07 839 Z1IOFF();
josmy 3:d23f3885fa07 840 Z2IOFF();
josmy 3:d23f3885fa07 841 Z1TESTOFF();
josmy 3:d23f3885fa07 842 Z2TESTOFF();
josmy 3:d23f3885fa07 843 CFIREOFF();
josmy 3:d23f3885fa07 844 SOUNDOFF();
josmy 3:d23f3885fa07 845 SILENCEOFF();
josmy 3:d23f3885fa07 846 itz1k.mode(PullUp);
josmy 3:d23f3885fa07 847 itz2k.mode(PullUp);
josmy 3:d23f3885fa07 848 sbutton.mode(PullUp);
josmy 3:d23f3885fa07 849 silbutton.mode(PullUp);
josmy 3:d23f3885fa07 850 z1iflag = 0;
josmy 3:d23f3885fa07 851 z2iflag = 0;
josmy 3:d23f3885fa07 852 z1tflag = 0;
josmy 3:d23f3885fa07 853 z2tflag = 0;
josmy 3:d23f3885fa07 854 z1drv = 1;
josmy 3:d23f3885fa07 855 z2drv = 1;
josmy 3:d23f3885fa07 856 HBTest = 0;
josmy 3:d23f3885fa07 857 OCflag = 0;
josmy 3:d23f3885fa07 858 //pc.printf("FIRE DETECTOR");
josmy 3:d23f3885fa07 859
josmy 3:d23f3885fa07 860 Test.attach(&TestISR,1.0);
josmy 3:d23f3885fa07 861 /*
josmy 3:d23f3885fa07 862 while(1){
josmy 3:d23f3885fa07 863 avg();
josmy 3:d23f3885fa07 864 //pc.print("Z1: %4u Z2: %4u\n", val1, val2);
josmy 3:d23f3885fa07 865 lcd.locate(0,0);
josmy 3:d23f3885fa07 866 lcd.printf("%2.4f %2.4f",fval1, fval3);
josmy 3:d23f3885fa07 867 lcd.locate(0,1);
josmy 3:d23f3885fa07 868 lcd.printf("%2.5f %2.4f",fval2, fval4);
josmy 3:d23f3885fa07 869 wait(1);
josmy 3:d23f3885fa07 870
josmy 3:d23f3885fa07 871 }
josmy 3:d23f3885fa07 872 */
josmy 3:d23f3885fa07 873 // Reset();
josmy 3:d23f3885fa07 874 while(1){
josmy 3:d23f3885fa07 875 //myled=!myled;
josmy 3:d23f3885fa07 876 //pc.printf("z1: %d\n",z1fled.read());
josmy 3:d23f3885fa07 877 itkey1();
josmy 3:d23f3885fa07 878 itkey2();
josmy 3:d23f3885fa07 879 firepanel();
josmy 3:d23f3885fa07 880 //pc.printf("%4.2f %4.2f %4.2f \n",fval1,fval2,fval3);
josmy 3:d23f3885fa07 881 //wait(0.1);
josmy 3:d23f3885fa07 882 isolation();
josmy 3:d23f3885fa07 883 TEST();
josmy 3:d23f3885fa07 884 HBIOFF();
josmy 3:d23f3885fa07 885 if(z1tflag != 1){
josmy 3:d23f3885fa07 886 if (z1iflag==0){
josmy 3:d23f3885fa07 887 Autofirez1();
josmy 3:d23f3885fa07 888 //Manualfirez1();
josmy 3:d23f3885fa07 889 opencircuitz1();
josmy 3:d23f3885fa07 890 //Manualz1();
josmy 3:d23f3885fa07 891 Shortz1();
josmy 3:d23f3885fa07 892 HBOFF();
josmy 3:d23f3885fa07 893 FaultOFF();
josmy 3:d23f3885fa07 894 ACFail();
josmy 3:d23f3885fa07 895 battery();
josmy 3:d23f3885fa07 896 sound();
josmy 3:d23f3885fa07 897 silence();
josmy 3:d23f3885fa07 898 FireOFF();
josmy 3:d23f3885fa07 899 }
josmy 3:d23f3885fa07 900 }
josmy 3:d23f3885fa07 901 if(z1iflag == 1)
josmy 3:d23f3885fa07 902 {
josmy 3:d23f3885fa07 903 lcd.locate(0,0);
josmy 3:d23f3885fa07 904 lcd.printf("Isolate 1");
josmy 3:d23f3885fa07 905 IsolateZ1();
josmy 3:d23f3885fa07 906 if((fval1 >= 0.003) && (fval1 < 3.00)) {
josmy 3:d23f3885fa07 907 wait_ms(10);
josmy 3:d23f3885fa07 908 if((fval1 >= 0.003) && (fval1 < 3.00)) {
josmy 3:d23f3885fa07 909 Z1FTOFF();
josmy 3:d23f3885fa07 910 }
josmy 3:d23f3885fa07 911 }
josmy 3:d23f3885fa07 912 ACFail();
josmy 3:d23f3885fa07 913 battery();
josmy 3:d23f3885fa07 914 sound();
josmy 3:d23f3885fa07 915 silence();
josmy 3:d23f3885fa07 916 }
josmy 3:d23f3885fa07 917
josmy 3:d23f3885fa07 918
josmy 3:d23f3885fa07 919 if(z2tflag != 1){
josmy 3:d23f3885fa07 920 if (z2iflag==0){
josmy 3:d23f3885fa07 921 Autofirez2();
josmy 3:d23f3885fa07 922 // Manualfirez2();
josmy 3:d23f3885fa07 923 opencircuitz2();
josmy 3:d23f3885fa07 924 //Manualz2();
josmy 3:d23f3885fa07 925 Shortz2();
josmy 3:d23f3885fa07 926 ACFail();
josmy 3:d23f3885fa07 927 HBOFF();
josmy 3:d23f3885fa07 928 FaultOFF();
josmy 3:d23f3885fa07 929 battery();
josmy 3:d23f3885fa07 930 sound();
josmy 3:d23f3885fa07 931 silence();
josmy 3:d23f3885fa07 932 FireOFF();
josmy 3:d23f3885fa07 933 }
josmy 3:d23f3885fa07 934 }
josmy 3:d23f3885fa07 935 if(z2iflag == 1)
josmy 3:d23f3885fa07 936 {
josmy 3:d23f3885fa07 937 lcd.locate(0,1);
josmy 3:d23f3885fa07 938 lcd.printf("Isolate 2");
josmy 3:d23f3885fa07 939 avg();
josmy 3:d23f3885fa07 940 if((z1iflag == 0) && (z1tflag == 0) && ((fval1>=0.003) && (fval1<0.09))){
josmy 3:d23f3885fa07 941 lcd.locate(0,0);
josmy 3:d23f3885fa07 942 lcd.printf(" ");
josmy 3:d23f3885fa07 943
josmy 3:d23f3885fa07 944 }
josmy 3:d23f3885fa07 945 IsolateZ2();
josmy 3:d23f3885fa07 946 if((fval2 >= 0.03) && (fval2 < 3.00)) {
josmy 3:d23f3885fa07 947 wait_ms(10);
josmy 3:d23f3885fa07 948 if((fval2 >= 0.003) && (fval2 < 3.00)) {
josmy 3:d23f3885fa07 949 Z2FTOFF();
josmy 3:d23f3885fa07 950 }
josmy 3:d23f3885fa07 951 }
josmy 3:d23f3885fa07 952 ACFail();
josmy 3:d23f3885fa07 953 battery();
josmy 3:d23f3885fa07 954 sound();
josmy 3:d23f3885fa07 955 silence();
josmy 3:d23f3885fa07 956
josmy 3:d23f3885fa07 957
josmy 3:d23f3885fa07 958 }
josmy 3:d23f3885fa07 959 avg();
josmy 3:d23f3885fa07 960 //if((fval1 >= 0.003) && (fval1 < 0.15)){
josmy 3:d23f3885fa07 961 if(z1tflag==1){
josmy 3:d23f3885fa07 962 if((fval1 >= 0.003) && (fval1 < 0.09)){
josmy 3:d23f3885fa07 963 lcd.locate(0,0);
josmy 3:d23f3885fa07 964 lcd.printf("Test Zn1 ");
josmy 3:d23f3885fa07 965 }
josmy 3:d23f3885fa07 966 Autofirez1_test();
josmy 3:d23f3885fa07 967 //Manualz1_test();
josmy 3:d23f3885fa07 968 opencircuitz1();
josmy 3:d23f3885fa07 969 battery();
josmy 3:d23f3885fa07 970 silence();
josmy 3:d23f3885fa07 971 sound();
josmy 3:d23f3885fa07 972 Shortz1();
josmy 3:d23f3885fa07 973 ACFail();
josmy 3:d23f3885fa07 974 //HBOFF();
josmy 3:d23f3885fa07 975 FaultOFF();
josmy 3:d23f3885fa07 976 FireOFF();
josmy 3:d23f3885fa07 977 itkey1();
josmy 3:d23f3885fa07 978 itkey2();
josmy 3:d23f3885fa07 979 HBOFF();
josmy 3:d23f3885fa07 980
josmy 3:d23f3885fa07 981
josmy 3:d23f3885fa07 982 //}
josmy 3:d23f3885fa07 983 }
josmy 3:d23f3885fa07 984 /*
josmy 3:d23f3885fa07 985 if(z1iflag!=1){
josmy 3:d23f3885fa07 986 if(z1tflag!=1)
josmy 3:d23f3885fa07 987 {
josmy 3:d23f3885fa07 988 lcd.locate(0,0);
josmy 3:d23f3885fa07 989 lcd.printf(" ");
josmy 3:d23f3885fa07 990
josmy 3:d23f3885fa07 991 }
josmy 3:d23f3885fa07 992 }
josmy 3:d23f3885fa07 993 */
josmy 3:d23f3885fa07 994 //if((fval2 >= 0.003) && (fval2 < 0.15)){
josmy 3:d23f3885fa07 995 if(z2tflag==1){
josmy 3:d23f3885fa07 996 if((fval2 >= 0.002) && (fval2 < 0.09)){
josmy 3:d23f3885fa07 997 lcd.locate(0,1);
josmy 3:d23f3885fa07 998 lcd.printf("Test Zn2 ");
josmy 3:d23f3885fa07 999 }
josmy 3:d23f3885fa07 1000 Autofirez2_test();
josmy 3:d23f3885fa07 1001 //Manualz2_test();
josmy 3:d23f3885fa07 1002 opencircuitz2();
josmy 3:d23f3885fa07 1003 battery();
josmy 3:d23f3885fa07 1004 silence();
josmy 3:d23f3885fa07 1005 sound();
josmy 3:d23f3885fa07 1006 Shortz2();
josmy 3:d23f3885fa07 1007 ACFail();
josmy 3:d23f3885fa07 1008 FaultOFF();
josmy 3:d23f3885fa07 1009 FireOFF();
josmy 3:d23f3885fa07 1010 itkey1();
josmy 3:d23f3885fa07 1011 itkey2();
josmy 3:d23f3885fa07 1012 HBOFF();
josmy 3:d23f3885fa07 1013 }
josmy 3:d23f3885fa07 1014 //}
josmy 3:d23f3885fa07 1015 if(z2iflag!=1){
josmy 3:d23f3885fa07 1016 if(z2tflag!=1)
josmy 3:d23f3885fa07 1017 {
josmy 3:d23f3885fa07 1018 avg();
josmy 3:d23f3885fa07 1019 if((fval2>=0.003) && (fval2 < 0.09)){
josmy 3:d23f3885fa07 1020 lcd.locate(0,1);
josmy 3:d23f3885fa07 1021 lcd.printf(" ");
josmy 3:d23f3885fa07 1022 }
josmy 3:d23f3885fa07 1023
josmy 3:d23f3885fa07 1024 }
josmy 3:d23f3885fa07 1025 }
josmy 3:d23f3885fa07 1026 if((z2tflag == 1) && (z1tflag != 1) && (z1iflag != 1) && (fval1 < 0.17)){
josmy 3:d23f3885fa07 1027 if(OCflag == 0){
josmy 3:d23f3885fa07 1028 lcd.locate(0,0);
josmy 3:d23f3885fa07 1029 lcd.printf(" ");
josmy 3:d23f3885fa07 1030 }
josmy 3:d23f3885fa07 1031
josmy 3:d23f3885fa07 1032 }
josmy 3:d23f3885fa07 1033 wait_ms(10);
josmy 3:d23f3885fa07 1034 }
josmy 3:d23f3885fa07 1035 }
josmy 3:d23f3885fa07 1036