amklsnrjkglwar
Dependencies: mbed
Fork of HelloWorld by
main.cpp
00001 #include "mbed.h" 00002 #include "SerialBuff.h" 00003 #include "Timer.h" 00004 00005 DigitalOut drift1(LED1),drift2(LED2),drift3(LED3),drift4(LED4); 00006 DigitalOut rod1(p23),rod2(p24),rod3(p25),rod4(p26),rod5(p27),rod6(p28),rod7(p29),rod8(p30); 00007 DigitalIn reset1(p13); 00008 AnalogIn sone1(p15),sone2(p16),sone3(p17),sone4(p18); 00009 00010 Ticker t1; 00011 00012 LocalFileSystem local("local"); 00013 00014 Serial pc(USBTX, USBRX); 00015 00016 00017 void alarm1(void); 00018 void alarm2(void); 00019 void alarm3(void); 00020 void alarm4(void); 00021 void blink1(void); 00022 void blink2(void); 00023 void blink3(void); 00024 void blink4(void); 00025 void logg(void); 00026 void testlogg(void); 00027 void reset(void); 00028 void sekunder(void); 00029 void passord(void); 00030 void meny(void); 00031 void status(void); 00032 void linje1(void); 00033 00034 #define grense0 1 // 3.3v 00035 #define grense3 0.5 // sone 1 0.5 00036 #define grense2 0.662 // sone 2 0.662 00037 #define grense1 0.398 // sone 1 og 2 0.398 00038 #define blink 0.1 00039 #define vindu 0.08 00040 00041 volatile unsigned int sek = 0,min = 0,hour = 0,dag = 0,stat_rod1,stat_rod2,stat_rod3,stat_rod4,stat_rod5,stat_rod6,stat_rod7,stat_rod8,stat_reset,passord_1,valg,reset2; 00042 00043 00044 int main() 00045 { 00046 reset1.mode(PullDown); 00047 passord(); 00048 meny(); 00049 t1.attach(&sekunder, 1.0); 00050 if(valg == 1) { 00051 while(1) { 00052 alarm1(); 00053 alarm2(); 00054 alarm3(); 00055 alarm4(); 00056 00057 reset(); 00058 wait (0.1); 00059 } 00060 } 00061 } 00062 void meny(void) 00063 { 00064 00065 printf("\r\n\r\nMeny\r\n\r\n"); 00066 printf("Tast:\r\n"); 00067 printf("1 starte systemet\r\n"); 00068 printf("2 reset alarmen\r\n"); 00069 printf("3 avslutte systemet\r\n"); 00070 printf("4 status\r\n"); 00071 scanf("%d",&valg); 00072 00073 if(valg == 1) { 00074 00075 } else if(valg == 2) { 00076 reset2 = 1; 00077 } else if(valg == 3) { 00078 passord(); 00079 } else if(valg == 4) { 00080 status(); 00081 } else { 00082 00083 } 00084 } 00085 00086 00087 00088 void linje1(void) 00089 { 00090 printf("\r\nVelkommen til BitGuard 3.25.1"); 00091 } 00092 00093 void status(void) 00094 { 00095 if(rod1 == 1) { 00096 printf("sløyfe 1\r\ndetektor 1 har slått ut etter %dsek %dmin %dtimer %ddager\r\n",sek,min,hour,dag); 00097 } 00098 if (rod2 == 1) { 00099 printf("sløyfe 1\r\ndetektor 2 har slått ut etter %dsek %dmin %dtimer %ddager\r\n",sek,min,hour,dag); 00100 } 00101 if(rod3 == 1) { 00102 printf("sløyfe 2\r\ndetektor 1 har slått ut etter %dsek %dmin %dtimer %ddager\r\n",sek,min,hour,dag); 00103 } 00104 if(rod4 == 1) { 00105 printf("sløyfe 2\r\ndetektor 2 har slått ut etter %dsek %dmin %dtimer %ddager\r\n",sek,min,hour,dag); 00106 } 00107 if(rod5 == 1) { 00108 printf("sløyfe 3\r\ndetektor 1 har slått ut etter %dsek %dmin %dtimer %ddager\r\n",sek,min,hour,dag); 00109 } 00110 if(rod6 == 1) { 00111 printf("sløyfe 3\r\ndetektor 2 har slått ut etter %dsek %dmin %dtimer %ddager\r\n",sek,min,hour,dag); 00112 } 00113 if(rod7 == 1) { 00114 printf("sløyfe 4\r\ndetektor 1 har slått ut etter %dsek %dmin %dtimer %ddager\r\n",sek,min,hour,dag); 00115 00116 } 00117 if(rod8 == 1) { 00118 printf("sløyfe 4\r\ndetektor 2 har slått ut etter %dsek %dmin %dtimer %ddager\r\n",sek,min,hour,dag); 00119 } 00120 if(reset1 == 0) { 00121 printf("alarmen har blitt resatt\r\n"); 00122 } else { 00123 printf("\r\nalt er i orden, ingen alarm er utlost"); 00124 } 00125 meny(); 00126 } 00127 void passord (void) 00128 { 00129 printf("Hei!\r\nvenligst tast inn passord\r\n"); 00130 scanf("%d", &passord_1); 00131 while (passord_1 != 258456) { 00132 printf("passord du har tastet inn er feil \r\nvenligst prov igjen\r\n "); 00133 scanf("%d", &passord_1); 00134 } 00135 linje1(); 00136 } 00137 void sekunder(void) 00138 { 00139 sek++; 00140 min = sek / 60; 00141 sek = sek % 60; 00142 hour = min / 60; 00143 min %= 60; 00144 dag = hour / 24; 00145 hour %= 24; 00146 00147 } 00148 void alarm1(void) 00149 { 00150 if( (sone1 >= (grense0 - vindu)) && (sone1 <= (grense0 + vindu))) { 00151 blink1(); 00152 testlogg(); 00153 } else if( (sone1 >= (grense1 - vindu)) && (sone1 <= (grense1 + vindu))) { 00154 blink1(); 00155 rod1 = 1; 00156 rod2 = 1; 00157 00158 } else if( (sone1 >= (grense2 - vindu)) && (sone1 <= (grense2 + vindu))) { 00159 blink1(); 00160 rod1 = 1; 00161 00162 } else { 00163 blink1(); 00164 rod2 = 1; 00165 00166 00167 } 00168 00169 00170 00171 } 00172 00173 00174 00175 00176 void alarm2(void) 00177 { 00178 if((sone2 >= (grense0 - vindu)) && (sone2 <= (grense0 + vindu))) { 00179 blink2(); 00180 testlogg(); 00181 } else if((sone2 >= (grense1 - vindu)) && (sone2 <= (grense1 + vindu))) { 00182 blink2(); 00183 rod3 = 1; 00184 rod4 = 1; 00185 } else if((sone2 >= (grense2 - vindu)) && (sone2 <= (grense2 + vindu))) { 00186 blink2(); 00187 rod3 = 1; 00188 00189 } else { 00190 blink2(); 00191 rod4 = 1; 00192 00193 } 00194 00195 00196 } 00197 00198 void alarm3(void) 00199 { 00200 if( (sone3 >= (grense0 - vindu)) && (sone3 <= (grense0 + vindu))) { 00201 blink3(); 00202 testlogg(); 00203 } else if( (sone3 >= (grense1 - vindu)) && (sone3 <= (grense1 + vindu))) { 00204 blink3(); 00205 rod5 = 1; 00206 rod6 = 1; 00207 } else if( (sone3 >= (grense2 - vindu)) && (sone3 <= (grense2 + vindu))) { 00208 blink3(); 00209 rod5 = 1; 00210 } else { 00211 blink3(); 00212 rod6 = 1; 00213 00214 } 00215 00216 00217 00218 } 00219 00220 void alarm4(void) 00221 { 00222 if( (sone4 >= (grense0 - vindu)) && (sone4 <= (grense0 + vindu))) { 00223 blink4(); 00224 testlogg(); 00225 } else if( (sone4 >= (grense1 - vindu)) && (sone4 <= (grense1 + vindu))) { 00226 blink4(); 00227 rod7 = 1; 00228 rod8 = 1; 00229 } else if( (sone4 >= (grense2 - vindu)) && (sone4 <= (grense2 + vindu))) { 00230 blink4(); 00231 rod7 = 1; 00232 } else { 00233 blink4(); 00234 rod8 = 1; 00235 00236 } 00237 00238 00239 00240 } 00241 void blink1(void) 00242 { 00243 if ( rod1 == 1||rod2 == 1) { 00244 drift1 = 1; 00245 wait(blink); 00246 drift1 = 0; 00247 } else { 00248 drift1 = 1; 00249 } 00250 } 00251 00252 void blink2(void) 00253 { 00254 if ( rod3 == 1||rod4 == 1) { 00255 drift2 = 1; 00256 wait(blink); 00257 drift2 = 0; 00258 } else { 00259 drift2 = 1; 00260 } 00261 } 00262 00263 void blink3(void) 00264 { 00265 if ( rod5 == 1||rod6 == 1) { 00266 drift3 = 1; 00267 wait(blink); 00268 drift3 = 0; 00269 } else { 00270 drift3 = 1; 00271 } 00272 } 00273 00274 void blink4(void) 00275 { 00276 if ( rod7 == 1||rod8 == 1) { 00277 drift4 = 1; 00278 wait(blink); 00279 drift4 = 0; 00280 } else { 00281 drift4 = 1; 00282 } 00283 } 00284 void reset(void) 00285 { 00286 if (reset1 == 0 || reset2 == 1 ) { 00287 rod1=rod2=rod3=rod4=rod5=rod6=rod7=rod8=drift1=drift2=drift3=drift4 = 0 ; 00288 } 00289 reset2 = 0; 00290 // scanf("%d",&valg); 00291 } 00292 00293 00294 void testlogg(void) 00295 { 00296 if(rod1||rod2||rod3||rod4||rod5||rod6||rod7||rod8 == 1) { 00297 logg(); 00298 00299 } 00300 } 00301 00302 00303 void logg(void) 00304 { 00305 FILE *fp = fopen("/local/logg.txt", "a"); 00306 if (fp == NULL) { 00307 pc.printf("Filfeil - avslutter\r\n"); 00308 exit(1); 00309 } 00310 00311 if(rod1 == 1 && stat_rod1 == 0 ) { 00312 fprintf(fp,"sløyfe 1\r\ndetektor 1 har slått ut etter %dsek %dmin %dtimer %ddager\r\n",sek,min,hour,dag); 00313 stat_rod1 = 1; 00314 } 00315 if (rod2 == 1 && stat_rod2 == 0 ) { 00316 fprintf(fp,"sløyfe 1\r\ndetektor 2 har slått ut etter %dsek %dmin %dtimer %ddager\r\n",sek,min,hour,dag); 00317 stat_rod2 = 1; 00318 } 00319 if(rod3 == 1 && stat_rod3 == 0 ) { 00320 fprintf(fp,"sløyfe 2\r\ndetektor 1 har slått ut etter %dsek %dmin %dtimer %ddager\r\n",sek,min,hour,dag); 00321 stat_rod3 = 1; 00322 } 00323 if(rod4 == 1 && stat_rod4 == 0 ) { 00324 fprintf(fp,"sløyfe 2\r\ndetektor 2 har slått ut etter %dsek %dmin %dtimer %ddager\r\n",sek,min,hour,dag); 00325 stat_rod4 = 1; 00326 } 00327 if(rod5 == 1 && stat_rod5 == 0 ) { 00328 fprintf(fp,"sløyfe 3\r\ndetektor 1 har slått ut etter %dsek %dmin %dtimer %ddager\r\n",sek,min,hour,dag); 00329 stat_rod5 = 1; 00330 } 00331 if(rod6 == 1 && stat_rod6 == 0 ) { 00332 fprintf(fp,"sløyfe 3\r\ndetektor 2 har slått ut etter %dsek %dmin %dtimer %ddager\r\n",sek,min,hour,dag); 00333 stat_rod6 = 1; 00334 } 00335 if(rod7 == 1 && stat_rod7 == 0 ) { 00336 fprintf(fp,"sløyfe 4\r\ndetektor 1 har slått ut etter %dsek %dmin %dtimer %ddager\r\n",sek,min,hour,dag); 00337 stat_rod7 = 1; 00338 } 00339 if(rod8 == 1 && stat_rod8 == 0 ) { 00340 fprintf(fp,"sløyfe 4\r\ndetektor 2 har slått ut etter %dsek %dmin %dtimer %ddager\r\n",sek,min,hour,dag); 00341 stat_rod8 = 1; 00342 } 00343 if(reset1 == 0 && stat_reset == 0) { 00344 fprintf(fp,"alarmen har blitt resatt\r\n"); 00345 stat_reset = 1; 00346 } 00347 fclose(fp); 00348 }
Generated on Thu Jul 14 2022 02:11:36 by 1.7.2