Dependencies:   KellerDruck_pressure PID PWM-Coil-driver Sensirion_SF04 VL6180

Fork of PUMP_SCRIPT by Ian Wolf

Revision:
7:b385e6a3f622
Parent:
5:f2cb21046678
Child:
8:bf86306ce7bf
--- a/main.cpp	Wed Aug 02 21:08:10 2017 +0000
+++ b/main.cpp	Thu Aug 03 19:07:43 2017 +0000
@@ -34,13 +34,14 @@
 //-----------------------------
 void pumpTachTrigger()
 {
+    
     pumpTachCounts++;
 }
 
 void pump_tach_update()
 {
     float i = pumpTachCounts; // In case it triggers mid-calculation
-    pumpTachCounts = 0;
+    pumpTachCounts=0;
     pumpRpm = (i/pumpTachPoles)*60;
 }
 
@@ -48,10 +49,12 @@
 {
     pump.period(.001); // 1kHz PWM
     pump = 0;
+    
+    
     //ledGrn.period(.001);
 
-    InterruptIn pumpTach(pumpTachPin);
-    pumpTach.rise(&pumpTachTrigger);
+    
+    
 
     pump_control_PID.setInputLimits(pumpMinPSI, pumpMaxPSI);
     pump_control_PID.setOutputLimits(0.0, 1.0); // Output is a PWM signal ranging from 0-1
@@ -134,8 +137,8 @@
         stdio_m.lock();
         timer.reset();
 
-        pc.printf(" %.02fprespsi %.01fsetpsi% .02fHz %.02f\r\n",
-                   pumpPressure.pressurePSI, ((double)pot2-.002)*pumpMaxPSI,
+        pc.printf(" %.02fprespsi %.01fsetpsi %.0fRPM %.02fHz %.02f\r\n",
+                   pumpPressure.pressurePSI, ((double)pot2-.002)*pumpMaxPSI, pumpRpm,
                   frequency, dutycycle);//, agentlevel;
         int wait = (1000 - timer.read_ms());
 
@@ -148,13 +151,16 @@
 int main()
 {
     pump_init();
+    pump_tach_update();
     //ledBlu = 1;
     pc.printf("Serenity Starting up...\n\r");
 //--------------------------------------------
 dutycycleup.rise(&dutycycleincrease);
 dutycycledown.rise(&dutycycledecrease);
 frequencyup.rise(&frequencyincrease);
-frequencydown.rise(&frequencydecrease);    
+frequencydown.rise(&frequencydecrease);
+pumpTach.rise(&pumpTachTrigger); 
+pump_tach_ticker.attach(&pump_tach_update, 1.0);  
 
     //Thread to execute injector valve control
     Injector_Valve_Control.set_priority(osPriorityHigh);
@@ -176,10 +182,12 @@
     // Thread to send process values to serial port
     print_process_values_t.set_priority(osPriorityLow);
     print_process_values_t.start(&print_process_values);
+    
+    
 
-    while (true) {
-         pump_tach_update();
+
+         
         
-    }
+    
 }