Last active
August 29, 2015 14:16
-
-
Save jimmyli97/db55facdecee88ff5c73 to your computer and use it in GitHub Desktop.
2-19 timepos
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#define MAX_HARVESTMOVE_TIME_POS 800 | |
typedef struct MotorState { | |
... //encoder data | |
long timePosMs; //stores position in "time" (50 means net movement forward for 50 ms) | |
long lastUpdateTimeMs; //last time this motorstate as updated | |
} MotorState; | |
void motorUpdateState() { | |
for (int i=0; i<NUM_MOTORS; i++) { | |
tMotor curMotor = motorList[i]; | |
if (motor[curMotor] > 0) { | |
long deltaTime = (nPgmTime - motorStates[curMotor].lastUpdateTimeMs); | |
motorStates[curMotor].timePosMs = motorStates[curMotor].timePosMs + deltaTime; | |
} else if (motor[curMotor] < 0) { | |
long deltaTime = (nPgmTime - motorStates[curMotor].lastUpdateTimeMs); | |
motorStates[curMotor].timePosMs = motorStates[curMotor].timePosMs - deltaTime; | |
} | |
... //handle encoders | |
} | |
} | |
long motorGetTimePosMs(tMotor curMotor) { | |
return motorStates[curMotor].timePosMs; | |
} | |
void joyHarvester(DesiredMotorVals *desiredMotorVals, TJoystick *joyState) { | |
if (joyButtonPressed(joyState, JOY2, BUTTON_X)) { //down | |
//check if exceeded time limit or override is enabled | |
if ((motorGetTimePosMs(HarvesterMove) < MAX_HARVESTMOVE_TIME_POS) || | |
joyButtonPressed(joyState, JOY2, BUTTON_START)) { | |
desiredMotorVals->power[HarvesterMove] = 50; | |
} else { | |
desiredMotorVals->power[HarvesterMove] = 0; | |
} | |
} else if (joyButtonPressed(joyState, JOY2, BUTTON_Y)) { //up | |
... //handle rest of button inputs | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment