Jamie Bignell / Mbed 2 deprecated Nucleo_blink_led

Dependencies:   mbed

Dependents:   MouseHybridSenseCode

Committer:
JamieBignell
Date:
Sat Apr 28 21:34:55 2018 +0000
Revision:
7:11dd5581c763
Parent:
6:a652deaae134
Hybrid Mouse Code

Who changed what in which revision?

UserRevisionLine numberNew contents of line
JamieBignell 5:dfea493f7a12 1 #include <mbed.h>
JamieBignell 5:dfea493f7a12 2 #include <funcdef.h>
JamieBignell 5:dfea493f7a12 3
JamieBignell 5:dfea493f7a12 4 void driveFunc()
JamieBignell 5:dfea493f7a12 5 {
JamieBignell 5:dfea493f7a12 6 //USE TEMPORARY VARIABLES TO WORK OUT A PULSE LENGTH FOR THE MOTORS, DICTATED BY ERROR OFFSET
JamieBignell 6:a652deaae134 7 leftMotorValTemp=initialMotorspeed-newPIDs;
JamieBignell 6:a652deaae134 8 rightMotorValTemp=initialMotorspeed+newPIDs;
JamieBignell 5:dfea493f7a12 9
JamieBignell 7:11dd5581c763 10 //rightMotorValTemp=53.9*exp(2.89*0.001*rightMotorValTemp);
JamieBignell 7:11dd5581c763 11 //leftMotorValTemp=53.9*exp(2.89*0.001*leftMotorValTemp);
JamieBignell 6:a652deaae134 12
JamieBignell 5:dfea493f7a12 13 //IF THE MOTOR SPEED GOES OUTSIDE POSSIBLE BOUNDARIES, CLAMP
JamieBignell 7:11dd5581c763 14 if (leftMotorValTemp>=1000)
JamieBignell 5:dfea493f7a12 15 {
JamieBignell 7:11dd5581c763 16 leftMotorValTemp=999;
JamieBignell 5:dfea493f7a12 17 }
JamieBignell 7:11dd5581c763 18 if (rightMotorValTemp>=1000)
JamieBignell 5:dfea493f7a12 19 {
JamieBignell 7:11dd5581c763 20 rightMotorValTemp=999;
JamieBignell 5:dfea493f7a12 21 }
JamieBignell 5:dfea493f7a12 22 if (leftMotorValTemp<0)
JamieBignell 5:dfea493f7a12 23 {
JamieBignell 5:dfea493f7a12 24 leftMotorValTemp=0;
JamieBignell 5:dfea493f7a12 25 }
JamieBignell 5:dfea493f7a12 26 if (rightMotorValTemp<0)
JamieBignell 5:dfea493f7a12 27 {
JamieBignell 5:dfea493f7a12 28 rightMotorValTemp=0;
JamieBignell 5:dfea493f7a12 29 }
JamieBignell 7:11dd5581c763 30
JamieBignell 7:11dd5581c763 31 for (int i=0;i<=10;i++)
JamieBignell 7:11dd5581c763 32 {
JamieBignell 7:11dd5581c763 33 if ((leftMotorValTemp>=motorLookup[i][0]) && (leftMotorValTemp<motorLookup[i+1][0]))
JamieBignell 7:11dd5581c763 34 {
JamieBignell 7:11dd5581c763 35 leftMotorValTemp=motorLookup[i][1]+(leftMotorValTemp-motorLookup[i][0])*((motorLookup[i+1][1]-motorLookup[i][1])/(motorLookup[i+1][0]-motorLookup[i][0]));
JamieBignell 7:11dd5581c763 36 break;
JamieBignell 7:11dd5581c763 37 }
JamieBignell 7:11dd5581c763 38 }
JamieBignell 7:11dd5581c763 39
JamieBignell 7:11dd5581c763 40 for (int i=0;i<=10;i++)
JamieBignell 7:11dd5581c763 41 {
JamieBignell 7:11dd5581c763 42 if ((rightMotorValTemp>=motorLookup[i][0]) && (rightMotorValTemp<motorLookup[i+1][0]))
JamieBignell 7:11dd5581c763 43 {
JamieBignell 7:11dd5581c763 44 rightMotorValTemp=motorLookup[i][1]+(rightMotorValTemp-motorLookup[i][0])*((motorLookup[i+1][1]-motorLookup[i][1])/(motorLookup[i+1][0]-motorLookup[i][0]));
JamieBignell 7:11dd5581c763 45 break;
JamieBignell 7:11dd5581c763 46 }
JamieBignell 7:11dd5581c763 47 }
JamieBignell 7:11dd5581c763 48
JamieBignell 6:a652deaae134 49 if (!stopMotors)
JamieBignell 6:a652deaae134 50 {
JamieBignell 7:11dd5581c763 51 leftMotorVal.pulsewidth_us(leftMotorValTemp);
JamieBignell 7:11dd5581c763 52 rightMotorVal.pulsewidth_us(rightMotorValTemp);
JamieBignell 6:a652deaae134 53 }
JamieBignell 6:a652deaae134 54 else
JamieBignell 6:a652deaae134 55 {
JamieBignell 7:11dd5581c763 56 //leftMotorVal.pulsewidth_us(0);
JamieBignell 7:11dd5581c763 57 //rightMotorVal.pulsewidth_us(0);
JamieBignell 7:11dd5581c763 58 //for(;;){}
JamieBignell 6:a652deaae134 59 }
JamieBignell 7:11dd5581c763 60
JamieBignell 5:dfea493f7a12 61 return;
JamieBignell 5:dfea493f7a12 62 }