Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: MouseHybridSenseCode
driveFunc.cpp@7:11dd5581c763, 2018-04-28 (annotated)
- 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?
| User | Revision | Line number | New 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 | } |