070914

Dependencies:   FreescaleIAP MODSERIAL mbed monitor timer0

Fork of 17_PT1000 by Temp27

Revision:
9:28519e850e1c
Parent:
8:3564645d2213
Child:
10:84387eed15b5
--- a/main.cpp	Fri Aug 08 09:35:38 2014 +0000
+++ b/main.cpp	Fri Aug 08 16:02:54 2014 +0000
@@ -1,6 +1,7 @@
-// Version 12 03.08.2014
+// Version 17 08.08.2014
 // die Ausgabe auf das Format #nr val umgestellt
 // 03.08.14 Monitorbefehle hinzugefügt
+// 08.08.14 Programm um Tropfenerfassung erweitert
 
 #include "mbed.h"
 #include "ConfigFile.h"
@@ -14,11 +15,11 @@
 
 #define SOLL_WERT 27.0          // Sollwert für den Fühler in der Flüssigkeit
 #define R_TEMP_MAX 40.0         // Maximaltermperatur für den Widerstand
-#define OFFSET_0 28330            // AD Wert für 0° Abgleich Kanal 0
-#define OFFSET_1 28560            // AD Wert für 0° Abgleich Kanal 1
-//#define OFFSET 27100            // AD Wert für 0° Abgleich Steuerung Flosrian
+#define OFFSET_0 28330          // AD Wert für 0° Abgleich Kanal 0
+#define OFFSET_1 28560          // AD Wert für 0° Abgleich Kanal 1
+//#define OFFSET 27100          // AD Wert für 0° Abgleich Steuerung Flosrian
 #define GAIN 113                // Digit pro °C  >> 112.3 Steuerung Florian
-//#define GAIN 112.3              // Digit pro °C  >> 112.3 Steuerung Florian
+//#define GAIN 112.3            // Digit pro °C  >> 112.3 Steuerung Florian
 
 //------------------------------------------------------------------------------
 // Anlegen von Klassen
@@ -34,7 +35,7 @@
 //------------------------------------------------------------------------------
 // Zuordnung von Eingängen und Ausgängen
 
-InterruptIn tropfen(PTA16);                      // Eingang für Tropfensensor
+InterruptIn tropfen(PTA16);                     // Eingang für Tropfensensor >> nur Port A und D
 PwmOut heizung(PTA13);                          // Ausgang für den PWM der die Heizung steuert
 
 DigitalOut r(LED_RED);
@@ -92,7 +93,8 @@
 uint16_t temp_word;
 uint8_t n, y, status, ds1820_status;
 
-int tropfen_anz = 0;
+int tropfen_anz = 10;       // zulässige Anzahl Tropfen pro Periode
+int tropfperiode = 60;      // in Sekunden
 bool send_flag = true;
 
 float temp_float, temp_diff, temp_neu, esum, temp_soll;
@@ -252,7 +254,13 @@
         drops = atoi(value);
         pc.printf("\nAnzahl Tropfen = %d", drops); 
     }
-                      
+
+    if (cfg.getValue("cycle", &value[0], sizeof(value))) 
+    {
+        tropfperiode = atoi(value);
+        pc.printf("\nPeriodenzeit fuer die Tropfen = %d", tropfperiode); 
+    } 
+                     
     if (cfg.getValue("soll", &value[0], sizeof(value))) 
     {
         soll_wert = atof(value);
@@ -282,9 +290,9 @@
        if (tropfen_anz >= drops){
        
             // mit einer 9 die Tropfen sperren
-       if(send_flag){   com.putc('9');
-                        send_flag = false;
-                        LED6 = 1;
+       if(send_flag){   com.putc('9');          // Trofensteuerung wird ausgeschaltet
+                        send_flag = false;      // Flag zur Programmsteuerung
+                        LED6 = 1;               // zeigt Status Tropfensteuerung an
                     }
        }
                  
@@ -302,15 +310,16 @@
        
        if (down_timer.GetTimerStatus(1) == 0)
        {
-          down_timer.SetCountdownTimer(1,1,1000);
+          down_timer.SetCountdownTimer(1,2,tropfperiode);
           
           tropfen_anz = 0;
           
           // mit einer 1 die Tropfen freigeben
-          if (~send_flag){ com.putc('1');
-                       send_flag=true;
-                       LED6 = 0;
-                     }
+          if (~send_flag){ 
+            com.putc('1');           // Tropfensteuerung freigeben
+            send_flag=true;          // Flag zum Status der Tropfensteuerung
+            LED6 = 0;                // Anzeige zum Status der Tropfensteuerung
+          }
        }
        
        //-------------------------------------------