MBED Application board used to control frequency and duty cycle of injector valves

Dependencies:   mbed-rtos mbed

Revision:
0:9b2c760c8e5c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Tue Jul 25 14:29:20 2017 +0000
@@ -0,0 +1,58 @@
+#include "mbed.h"
+#include "rtos.h"
+#include "coil-driver.h"
+
+Coil yellow(A0, 300, 40, 4); // Injector
+InterruptIn dutycycleup(A2);
+InterruptIn dutycycledown(D4);
+InterruptIn frequencyup(A5);
+InterruptIn frequencydown(A4);
+
+Serial pc(USBTX, USBRX);
+
+double frequency=5;
+double dutycycle=0.75;
+float openvalue=(((1/frequency)*dutycycle));
+float offvalue=(1/frequency)-openvalue;
+
+void dutycycleincrease()
+{
+    dutycycle=dutycycle+0.01;
+}
+
+void dutycycledecrease()
+{
+    dutycycle=dutycycle-0.01;
+}
+
+void frequencyincrease()
+{
+    frequency=frequency+1;
+}
+void frequencydecrease()
+{
+    frequency=frequency-1;
+}
+
+int main() {
+ 
+dutycycleup.rise(&dutycycleincrease);
+dutycycledown.rise(&dutycycledecrease);
+frequencyup.rise(&frequencyincrease);
+frequencydown.rise(&frequencydecrease);     
+  
+while(1){
+    
+float openvalue=(((1/frequency)*dutycycle));
+float offvalue=(1/frequency)-openvalue;
+    
+yellow.on();
+wait(openvalue);
+yellow.off();
+wait(offvalue);
+
+pc.printf("Frequency: %f\r\n", frequency);
+pc.printf("\n");
+pc.printf("Duty Cycle: %f\r\n", dutycycle);
+}
+}
\ No newline at end of file