Programmeringsgruppe 1
/
AlarmsystemDel1
Del 1 - Stort sett fungerer
Fork of Alarmsystem001 by
Diff: main.cpp
- Revision:
- 12:0193024eab13
- Parent:
- 11:dad1798ed88f
- Child:
- 13:0622c228b67d
--- a/main.cpp Fri Feb 09 10:53:12 2018 +0000 +++ b/main.cpp Mon Feb 19 08:17:48 2018 +0000 @@ -1,7 +1,11 @@ #include "mbed.h" -#include <vector> +#include "rtos.h" +#include <RtosTimer.h> #include <math.h> + +#include "mbed_error.h" + #define Inn 4 //#define Feil 0<1 @@ -12,22 +16,32 @@ BusOut AlarmUtganger1(p21, p22, p23, p24); //1 - Dør 1 Sone 1, 2 - Dør 1 Sone 2, 4 - Dør 1 Sone 3, 8 - Dør 1 Sone 4 BusOut AlarmUtganger2(p25, p26, p27, p28); //1 - Dør 2 Sone 1, 2 - Dør 2 Sone 2, 4 - Dør 2 Sone 3, 8 - Dør 2 Sone 4 DigitalIn Servicebryter(p20); -AnalogIn _Sone1(p15); AnalogIn _Sone2(p16); AnalogIn _Sone3(p17); AnalogIn _Sone4(p19); -float Soner[Inn]; int tilstand = 0; +AnalogIn _Sone1(p15); +AnalogIn _Sone2(p16); +AnalogIn _Sone3(p17); +AnalogIn _Sone4(p19); +float Soner[Inn]; +int tilstand = 0; int TilstandSjekk(int, int); - -Ticker AlarmBlink; // 10Hz blinking for alarmfunksjon på lys og telling +void Alarmf(); +Thread thread; +volatile bool running = true; +//Ticker AlarmBlink; // 10Hz blinking for alarmfunksjon på lys og telling //nt Tid = 0; -volatile int sysclock = 0; int Tilstandssjekk(); -void AlarmBlink_Start(void); +//void Alarm(); //volatile int Klokke = 0; +void Alarmf(void) { + Driftslys = !Driftslys; +} + int main() { - AlarmBlink.attach(&AlarmBlink_Start, 0.05); while(1) { + RtosTimer Alarm(Alarmf); + // AlarmBlink.attach(&Alarm, 1); /*if(Servicebryter == 1) { Utganger1 = 0; Utganger2 = 0; @@ -38,21 +52,19 @@ //Soner[3] = _Sone4; for(int i=0; i < Inn; i++) { //pc.printf("%f\n", Soner[i]); - Driftslys = 1; - if((AlarmUtganger1 && AlarmUtganger2) > 0) AlarmBlink_Start(); if((Soner[i] > 0.75 )&&( Soner[i] < 0.83)) { //Tilstand1, Dør 1 åpen //pc.printf("Vi er i Tilstand1\n"); tilstand = 1; TilstandSjekk(i, tilstand); } if((Soner[i] > 0.55 )&&( Soner[i] < 0.59)) { //Normaldrift - //pc.printf("Vi er i Normaldrift\n"); + //pc.printf("Vi er i Normaldrift\n") tilstand = 0; TilstandSjekk(i, tilstand); } if((Soner[i] > 0.65 )&&( Soner[i] < 0.69)) { //Tilstand 2, Dør 2 åpen //pc.printf("Vi er i tilstand2\n"); - tilstand = 2; + tilstand = 2; TilstandSjekk(i, tilstand); } if(Soner[i] >= 1) { //Begge dører er åpne @@ -76,17 +88,21 @@ { if(tilstand == 0) { //pc.printf("Vi er i funksjonen normaldrift i sone: %d \n", i); + //AlarmBlink.detach(); + Alarm.stop(); double n = 2; // We want 2^i double Y = 1; for(int k=1; k<=i; k++) Y = Y*n; - if(Y == AlarmUtganger1) AlarmUtganger1 = AlarmUtganger1 - Y; - if(Y == AlarmUtganger2) AlarmUtganger2 = AlarmUtganger2 - Y; - if((AlarmUtganger1 && AlarmUtganger2) == 0 ) AlarmBlink.detach(); - int Utganger1 = AlarmUtganger1; int Utganger2 = AlarmUtganger2; + if ( Y == AlarmUtganger1) AlarmUtganger1 = AlarmUtganger1 - Y; + if ( Y == AlarmUtganger2) AlarmUtganger2 = AlarmUtganger2 - Y; + int Utganger1 = AlarmUtganger1; + int Utganger2 = AlarmUtganger2; //pc.printf("Utgangsbuss1 har naa verdien: %d \n Utgangsbuss2 har naa verdien: %d", Utganger1, Utganger2); } if(tilstand == 1) { //Hvis dør 1 er åpen... //pc.printf("Vi er i funksjonen tilstandssjekk dor 1, med verdi: %d\n", i); + //Alarm(); + Alarm.start(50); double n = 2; // We want 2^i double Y = 1; for(int k=1; k<=i; k++) Y = Y*n; @@ -97,6 +113,8 @@ } if(tilstand == 2) { //Hvis dør 2 er åpen... //pc.printf("Vi er i funksjonen tilstandssjekk dor 2, med verdi: %d\n", i); + //Alarm(); + Alarm.start(50); double n = 2; // We want 2^i double Y = 1; for(int k=1; k<=i; k++) Y = Y*n; @@ -106,7 +124,9 @@ //pc.printf("Vi har verdien paa utgangsbuss: %d\n", Utganger2); } if(tilstand == 3) { //Hvis begge dører er åpne - //pc.printf("Vi er i funksjonen tilstandssjekk alle dorer, med verdi: %d \n", i); + //pc.printf("Vi er i funksjonen tilstandssjekk alle dorer, med verdi: %d \n", i);; + // Alarm(); + Alarm.start(50); double n = 2; // We want 2^i double Y = 1; for(int k=1; k<=i; k++) Y = Y*n; @@ -119,7 +139,10 @@ return 0; } -void AlarmBlink_Start(void) + + +/*void Alarm() { - Driftslys = 0; -} \ No newline at end of file + Driftslys = !Driftslys; + wait(0.05); +}*/ \ No newline at end of file