Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of Alarmsystem_log_funksjon_funker_ikke 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
