Update vom 10.05.15
Dependencies: FreescaleIAP MODSERIAL mbed monitor timer0
Fork of 18_PT1000 by
Diff: main.cpp
- Revision:
- 20:b85406f52de3
- Parent:
- 19:f3c41bbc809a
- Child:
- 21:6f524a6caabe
--- 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 ...