Programming Milestone Group 7 BMT M9

Dependencies:   FastPWM MODSERIAL mbed

Revision:
2:6d3f3d1bcef7
Parent:
1:67b19c59b8c9
Child:
3:cb0a931ff019
Child:
4:a4cd6f9c851d
--- a/main.cpp	Tue Sep 25 12:41:08 2018 +0000
+++ b/main.cpp	Tue Sep 25 14:58:08 2018 +0000
@@ -1,29 +1,43 @@
 #include "mbed.h"
 #include "FastPWM.h"
 #include "MODSERIAL.h"
+MODSERIAL pc(USBTX, USBRX);
 
 Ticker motor; // ticker function
-FastPWM pwmpin(D5); // SPECIFIC PIN (hoeft niet aangesloten te worden) Tells you how fast the motor has to go (later: pwmpin.write will tell you the duty cycle, aka how much voltage the motor gets)
+FastPWM pwmpin1(D5); // SPECIFIC PIN (hoeft niet aangesloten te worden) Tells you how fast the motor has to go (later: pwmpin.write will tell you the duty cycle, aka how much voltage the motor gets)
+FastPWM pwmpin2(D6); // SPECIFIC PIN (hoeft niet aangesloten te worden) Tells you how fast the motor has to go (later: pwmpin.write will tell you the duty cycle, aka how much voltage the motor gets)
 DigitalOut directionpin1(D4); // SPECIFIC PIN (hoeft niet aangesloten te worden) Direction value (0-1) that the mbed will give the motor: in which direction the motor must rotate
 DigitalOut directionpin2(D7); // SPECIFIC PIN (hoeft niet aangesloten te worden) Direction value (0-1) that the mbed will give the motor: in which direction the motor must rotate
 AnalogIn potmeter1(A0); // Analoge input van potmeter 1
 AnalogIn potmeter2(A1); // Analoge input van potmeter 2
 
+volatile float pot1;
+volatile float pot2;
+volatile float pot1_scale;
+volatile float pot2_scale;
+volatile float u1;
+volatile float u2;
+
 void motorfunction()
-{       float pot1 = potmeter1.read(); // Reads out value potmeter 1 between 0-1
-        float pot1_scale = pot1*2 -1;         // Scales value potmeter from 0-1 to -1 - 1.
-        float pot2 = potmeter2.read(); 
-        float pot2_scale = pot2*2 -1;         // Scales value potmeter from 0-1 to -1 - 1.        
-        float u1 = pot1_scale; // motor control signal
-        float u2 = pot2_scale; // motor control signal
-        directionpin1 = u1 > 0.0f; //either true or false, determines direction (0 or 1)
-        directionpin2 = u2 > 0.0f; //either true or false
-        pwmpin = fabs(u1); //pwm duty cycle can only be positive, floating point absolute value (if value is >0, the there still will be a positive value).
+{       pot1 = potmeter1.read();          // Reads out value potmeter 1 between 0-1
+        pot1_scale = pot1*2 -1;           // Scales value potmeter from 0-1 to -1 - 1.
+        pot2 = potmeter2.read(); 
+        pot2_scale = pot2*2 -1;           // Scales value potmeter from 0-1 to -1 - 1.        
+        u1 = pot1_scale;                  // motor control signal
+        u2 = pot2_scale;                  // motor control signal
+        directionpin1 = u1 > 0.0f;              //either true or false, determines direction (0 or 1)
+        directionpin2 = u2 > 0.0f;              //either true or false
+        pwmpin1 = fabs(u1);                     //pwm duty cycle can only be positive, floating point absolute value (if value is >0, the there still will be a positive value).
+        pwmpin2 = fabs(u2);                     //pwm duty cycle can only be positive, floating point absolute value (if value is >0, the there still will be a positive value).
 }
 
 int main()
 {
-    pwmpin.period_us(60.0); //60 microseconds PWM period, 16.7 kHz
-    motor.attach(motorfunction,0.3);
-    while(true){} //Lege while loop zodat functie niet afloopt
+    pwmpin1.period_us(60.0); //60 microseconds PWM period, 16.7 kHz, defines all PWM pins (only needs to be done once)
+    pc.baud(115200);
+    motor.attach(motorfunction,0.5);
+    while(true){
+           pc.printf("%f \n, %f \n, %f\n", pot1,pot1_scale, u1);
+           wait(1.0f);
+           } //Lege while loop zodat functie niet afloopt
 }
\ No newline at end of file