070914

Dependencies:   FreescaleIAP MODSERIAL mbed monitor timer0

Fork of 17_PT1000 by Temp27

Revision:
10:84387eed15b5
Parent:
9:28519e850e1c
Child:
11:7bc691148135
--- a/main.cpp	Fri Aug 08 16:02:54 2014 +0000
+++ b/main.cpp	Mon Aug 18 08:27:08 2014 +0000
@@ -29,8 +29,9 @@
 Serial pc(USBTX, USBRX);                        // tx, rx
 Serial com(PTC4, PTC3);                         
 Buffer <char> buf;                              // Ringbuffer für ankommende Zeichen
-// DS2482 ow(PTE0,PTE1,0x30);                      //        sda, scl, adr
+// DS2482 ow(PTE0,PTE1,0x30);                   //        sda, scl, adr
 
+Timer t;                                        // Zeitmessung für Entprellen
 
 //------------------------------------------------------------------------------
 // Zuordnung von Eingängen und Ausgängen
@@ -115,10 +116,16 @@
 
 //------------------------------------------------------------------------------
 // Interruptroutine wird bei jedem Tropfen aufgerufen
-
+// Pulse die in einem Abstand kleine 1ms sind werden nicht gezählt
+//
 void tropfen_handler()
 {
-    tropfen_anz++;
+    if(t.read_us() > 1000)
+    {
+        tropfen_anz++;
+    }
+    t.reset();
+    t.start();    
 }
     
 //------------------------------------------------------------------------------
@@ -191,6 +198,8 @@
     esum = 0.0;
     
     tropfen.fall(&tropfen_handler);
+    t.reset();
+    t.start();
     
     //------------------------------------------------------------------------------
     // RS232 Schnittstellt welche auf den CMSIS-DAP (USB Port) weitergeleitet wird
@@ -312,13 +321,18 @@
        {
           down_timer.SetCountdownTimer(1,2,tropfperiode);
           
-          tropfen_anz = 0;
-          
-          // mit einer 1 die Tropfen freigeben
-          if (~send_flag){ 
-            com.putc('1');           // Tropfensteuerung freigeben
-            send_flag=true;          // Flag zum Status der Tropfensteuerung
-            LED6 = 0;                // Anzeige zum Status der Tropfensteuerung
+          //-------------------------------------------
+          // nur freigeben, wenn nicht über monitor gesperrt
+          if (f_flag)
+          {
+              tropfen_anz = 0;
+              
+              // mit einer 1 die Tropfen freigeben
+              if (~send_flag){ 
+                com.putc('1');           // Tropfensteuerung freigeben
+                send_flag=true;          // Flag zum Status der Tropfensteuerung
+                LED6 = 0;                // Anzeige zum Status der Tropfensteuerung
+              }
           }
        }