Add rounding to proper display dshot values

This commit is contained in:
Štěpán Dalecký 2022-01-14 20:42:38 +01:00
parent 18ee33e7a8
commit 7ee0736516
3 changed files with 4 additions and 4 deletions

View File

@ -1089,7 +1089,7 @@ static void loadMainState(timeUs_t currentTimeUs)
const int motorCount = getMotorCount();
for (int i = 0; i < motorCount; i++) {
blackboxCurrent->motor[i] = motor[i];
blackboxCurrent->motor[i] = lrintf(motor[i]);
}
blackboxCurrent->vbatLatest = getBatteryVoltageLatest();

View File

@ -86,7 +86,7 @@ float dshotConvertFromExternal(uint16_t externalValue)
uint16_t dshotConvertToExternal(float motorValue)
{
uint16_t externalValue;
float externalValue;
if (featureIsEnabled(FEATURE_3D)) {
if (motorValue == DSHOT_CMD_MOTOR_STOP || motorValue < DSHOT_MIN_THROTTLE) {
@ -100,7 +100,7 @@ uint16_t dshotConvertToExternal(float motorValue)
externalValue = (motorValue < DSHOT_MIN_THROTTLE) ? PWM_RANGE_MIN : scaleRangef(motorValue, DSHOT_MIN_THROTTLE, DSHOT_MAX_THROTTLE, PWM_RANGE_MIN + 1, PWM_RANGE_MAX);
}
return externalValue;
return lrintf(externalValue);
}
FAST_CODE uint16_t prepareDshotPacket(dshotProtocolControl_t *pcb)

View File

@ -585,7 +585,7 @@ static void bbWriteInt(uint8_t motorIndex, uint16_t value)
static void bbWrite(uint8_t motorIndex, float value)
{
bbWriteInt(motorIndex, value);
bbWriteInt(motorIndex, lrintf(value));
}
static void bbUpdateComplete(void)