add ramp
This commit is contained in:
@@ -11,9 +11,21 @@ void deadJoystick(void* p){
|
||||
eKart.torque = 0;
|
||||
eKart.position = eKart.center;
|
||||
}
|
||||
|
||||
void calcTorque(uint8_t joy_pos) {
|
||||
int32_t calcTorque;
|
||||
calcTorque = (int8_t) joy_pos; // joystick position
|
||||
static int8_t lastPos = 0;
|
||||
int8_t diff = ((int8_t)joy_pos) - lastPos;
|
||||
|
||||
if (diff > KART_CST.CONTROL_PARAM_MAX_CHANGE_DRIVE) {
|
||||
calcTorque = lastPos + KART_CST.CONTROL_PARAM_MAX_CHANGE_DRIVE;
|
||||
} else if (diff < -KART_CST.CONTROL_PARAM_MAX_CHANGE_DRIVE) {
|
||||
calcTorque = lastPos - KART_CST.CONTROL_PARAM_MAX_CHANGE_DRIVE;
|
||||
} else {
|
||||
calcTorque = (int8_t) joy_pos; // joystick position
|
||||
}
|
||||
lastPos = calcTorque;
|
||||
|
||||
calcTorque *= KART_CST.CONTROL_POWER_FACTOR; // convert by power factor
|
||||
calcTorque /= 1000; // torque define by joystick
|
||||
eKart.torque = (int16_t) calcTorque;
|
||||
@@ -21,7 +33,18 @@ void calcTorque(uint8_t joy_pos) {
|
||||
|
||||
void calcPosition(uint8_t joy_pos){
|
||||
int32_t calcPosition;
|
||||
calcPosition = (int8_t) joy_pos;
|
||||
static int8_t lastPos = 0;
|
||||
int8_t diff = ((int8_t)joy_pos) - lastPos;
|
||||
|
||||
if (diff > KART_CST.CONTROL_PARAM_MAX_CHANGE_STEERING) {
|
||||
calcPosition = lastPos + KART_CST.CONTROL_PARAM_MAX_CHANGE_STEERING;
|
||||
} else if (diff < -KART_CST.CONTROL_PARAM_MAX_CHANGE_STEERING) {
|
||||
calcPosition = lastPos - KART_CST.CONTROL_PARAM_MAX_CHANGE_STEERING;
|
||||
} else {
|
||||
calcPosition = (int8_t) joy_pos;
|
||||
}
|
||||
lastPos = calcPosition;
|
||||
|
||||
calcPosition *= (int32_t) KART_CST.CONTROL_STEERING_FACTOR;
|
||||
calcPosition /= 1000;
|
||||
calcPosition += eKart.center;
|
||||
|
||||
Reference in New Issue
Block a user