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.
Dependencies: FreescaleIAP MODSERIAL mbed monitor timer0
Fork of 19_Taster_a by
Diff: main.cpp
- Revision:
- 20:b85406f52de3
- Parent:
- 19:f3c41bbc809a
- Child:
- 21:07482037ca54
diff -r f3c41bbc809a -r b85406f52de3 main.cpp
--- a/main.cpp Sun May 10 17:59:45 2015 +0000
+++ b/main.cpp Mon May 11 17:32:06 2015 +0000
@@ -102,7 +102,7 @@
// Softwaretimer für die Zeitsteuerung anlegen
down_timer.SetCountdownTimer(0,1,500); // 1 ms Timer * 500 => ergibt 500 ms
- down_timer.SetCountdownTimer(1,1,10); // 1 ms Timer * 10 => ergibt 10 ms
+ down_timer.SetCountdownTimer(1,1,100); // 1 ms Timer * 10 => ergibt 10 ms, 100 ms für Einschaltverzögerung
down_timer.SetCountdownTimer(2,1,0); // 1 ms Timer => reserviert für optischen Alarm
down_timer.SetCountdownTimer(3,1,0); // 1 ms Timer => reserviert für akustischen Alarm
down_timer.SetCountdownTimer(4,1,0); // 1 ms Timer => reserviert für nach Entriegelung
@@ -165,7 +165,7 @@
// optischer Alarm ausschalten, wenn IN3 wieder 0 bekommt ==> Quittierung
- if (in1.optischer_alarm && in3.aktiv)
+ if (in1.optischer_alarm && in3.aktiv && !in1.aktiv)
{
in1.optischer_alarm = 0;
DEBUG("\n IN1 mit IN3 quittiert \n");
@@ -184,9 +184,9 @@
{
in2.old = 0; // 0 im aktivierten Modus
in2.aktiv = 1; // Eingang ist aktiv
- in2.optischer_alarm = 1;
- in2.summer = 1;
- down_timer.SetCountdownTimer(3,1,AA_NIN); // Zeit für Softtimer auf 10 Sekunden setzen
+ //in2.optischer_alarm = 1;
+ in2.summer = 1; // am 11.05.15 entfernt, da Summer weiter untern aktiviert wird
+ //down_timer.SetCountdownTimer(3,1,AA_NIN); // Zeit für Softtimer auf 10 Sekunden setzen
DEBUG("\n negative Flanke IN2 \n");
}
@@ -197,7 +197,7 @@
in2.summer = 0;
DEBUG("\n positve Flanke IN2 \n");
}
-
+/*
if (in2.aktiv && !in2.summer && !in1.summer && (down_timer.GetTimerStatus(4) == 0))
{
in2.summer = 1;
@@ -211,7 +211,7 @@
in2.optischer_alarm = 0;
DEBUG("\n IN2 mit IN3 quittiert \n");
}
-
+*/
//------------------------------------------------
// IN3 Signalstation, Öffner => 1 ist Ruheezustand
@@ -239,13 +239,6 @@
// Rot/Grüne LED (verriegelt/entriegelt):
// rot Tor ist verriegelt
// grün Tor ist entriegelt
-
- // 1. IN3 auf 1 = OUT2 ein und OUT3 aus Rot an / Grün aus (verriegelt)
-
- if(!in3.aktiv) {
- OUT2 = LED_EIN;
- OUT3 = LED_AUS;
- }
// 2. IN3 auf 0 = OUT2 aus und OUT3 ein Rot aus / Grün an (entriegelt)
// 3. IN1 auf 1 = OUT2 aus und OUT3 ein Rot aus / Grün an (entriegelt)
@@ -254,11 +247,17 @@
OUT2 = LED_AUS;
OUT3 = LED_EIN;
}
+ else
+ // 1. IN3 auf 1 = OUT2 ein und OUT3 aus Rot an / Grün aus (verriegelt)
+ {
+ OUT2 = LED_EIN;
+ OUT3 = LED_AUS;
+ }
//------------------------------------------------
// Gelbe LED (optischer Alarm):
- if (in1.optischer_alarm || in2.optischer_alarm) // sobald der optische Alarm aus Eingang 1 oder Eingang 2 akiviert wurde, diesen in Blinkmode schalten
+ if (in1.optischer_alarm) // sobald der optische Alarm aus Eingang 1 akiviert wurde, diesen in Blinkmode schalten
{
if (down_timer.GetTimerStatus(2) == 0)
{
@@ -274,9 +273,11 @@
//------------------------------------------------
// Summer (OUT5 +24V)
+
if (in1.summer || in2.summer || (down_timer.GetTimerStatus(3) != 0)) // sobald der Eingang 1 oder Eingang 2 akiviert ist oder der Timer
{ // noch aktiv ist, den Summer aktivieren
- OUT5 = 1;
+ DEBUG("\n Summer 1 = %d Summer 2 = %d \n",(uint8_t)in1.summer,(uint8_t)in2.summer);
+ OUT5 = 1;
}
else
{
@@ -288,9 +289,9 @@
// Der Kontakt des Nottasters wird weitergegeben
if (in1.aktiv) { // 1. IN1 auf 0 = OUT6 (K1) ein
- OUT6 = 0;
+ OUT6 = 1;
} else { // 2. IN1 auf 1 = OUT6 aus
- OUT6 = 1;
+ OUT6 = 0;
}
} // end if (downtimer ...
