Update vom 10.05.15

Dependencies:   FreescaleIAP MODSERIAL mbed monitor timer0

Fork of 18_PT1000 by Temp27

Files at this revision

API Documentation at this revision

Comitter:
rs27
Date:
Mon May 11 17:32:06 2015 +0000
Parent:
19:f3c41bbc809a
Child:
21:6f524a6caabe
Commit message:
Stand 11.05.15

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
--- 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 ...