NXP cup car code made by Pascal. "stable" version apr. 2016

Dependencies:   mbed FRDM-TFC PIDcontroller FreescaleIAP Vision MMA8451Q MotorControl

Revision:
2:eb79d6e3f701
Parent:
1:5402c62ad487
Child:
3:c21068661635
--- a/main.cpp	Tue Jul 04 19:24:29 2017 +0000
+++ b/main.cpp	Wed Jul 05 20:31:26 2017 +0000
@@ -53,7 +53,7 @@
 {
 }
 
-void dataConversionRoutine()
+void dataConvertionRoutine()
 {
     uint8_t mask;
     
@@ -107,9 +107,9 @@
 
 int main()
 {
-    //uint8_t i;
+    uint8_t i;
     uint8_t r,l;
-    float motorPWM,steering;
+    float motorPWM,steering,steeringFiltered;
     float pixelTarget;
     struct lineScanData lineData;
     uint32_t lastcount = 0;
@@ -122,15 +122,19 @@
     pc.baud(115200);
     debug.baud(115200);
     
-    convTicker.attach_us(&dataConversionRoutine, 2000);
+    // run convertion routine each 2ms
+    convTicker.attach_us(&dataConvertionRoutine, 2000);
+    // record data when convertion done
     TFC_ConvertionReadyCallback.attach(&saveADCMeas);
     
     batLevelTicker.attach(&updateBatteryLevel,0.2);
     
+    motors.setFixedPWMMode();
     motors.setSpeedTargetValue(2.0);
+    motors.setPWM(0.45);
     
     steeringPID.setReference(0);
-    steeringPID.setCoefficients(2,0,0);
+    steeringPID.setCoefficients(1.5,0,0);
     steeringPID.setOutputLimits(-0.6,0.6);
 
     while(1)
@@ -168,7 +172,10 @@
         
         
         // new
-        applySteeringCommand(steeringPID.processNewValue(steering));        
+        steeringFiltered = steeringPID.processNewValue(steering);
+        applySteeringCommand(steeringFiltered);
+        motorPWM = 0.6-abs(steeringFiltered)/2.0;
+        motors.setPWM(motorPWM);
 
         motors.processTasks();
         //motorPWM = TFC_ReadPot(0);
@@ -183,13 +190,6 @@
             t.reset();
             t.start();
             
-            //lineScanLightAdjust((uint16_t*)TFC_LineScanImage0);
-            lineData = lineScanProcess((uint16_t*)TFC_LineScanImage0);
-            pixelTarget = (lineData.leftEdgeIndex+lineData.rightEdgeIndex)/2.0;
-            steering = getSteeringValue(pixelTarget);
-            
-            applySteeringCommand(steeringFilter(steering));
-            
             // stop calculation time measurement
             t.stop();