|
@@ -259,10 +259,10 @@ void torsensor_voTorADC(void) // need to match ADC_StartConversion(ADC1);
|
|
|
torsensor_stTorSensorOut.uwTorquePu = torsensor_stTorSensorCof.uwBikeTorStep4NmPu;
|
|
|
}
|
|
|
#elif (TORSENSOR_USEMOL == TORSENSOR_USEAUTOZERO)
|
|
|
- torsensor_stTorSensorOut.uwTorqueReg = ( (TORQUEVOLREG1() - torsensor_stTorSensorCof.uwTorqueOffsetNow1) +
|
|
|
- (TORQUEVOLREG2() - torsensor_stTorSensorCof.uwTorqueOffsetNow2) +
|
|
|
- (TORQUEVOLREG3() - torsensor_stTorSensorCof.uwTorqueOffsetNow3)
|
|
|
- ) / 3;
|
|
|
+ torsensor_stTorSensorOut.uwTorqueReg = abs( (SWORD)(TORQUEVOLREG1() - torsensor_stTorSensorCof.uwTorqueOffsetNow1) +
|
|
|
+ (SWORD)(TORQUEVOLREG2() - torsensor_stTorSensorCof.uwTorqueOffsetNow2) +
|
|
|
+ (SWORD)(TORQUEVOLREG3() - torsensor_stTorSensorCof.uwTorqueOffsetNow3)
|
|
|
+ ) / 3;
|
|
|
if (torsensor_stTorSensorOut.uwTorqueReg <= torsensor_stTorSensorCof.uwTorqueOffset)
|
|
|
{
|
|
|
torsensor_stTorSensorOut.uwTorquePu = 0;
|
|
@@ -337,37 +337,50 @@ void TorqueSensorRegFltCal(void)
|
|
|
TorqueSensorRegFlt.SensorFlt3 = TorqueSensorRegFlt.SensorFltSum3 >> 10;
|
|
|
}
|
|
|
|
|
|
+//零点更新
|
|
|
void TorqueSensorOffSetAuto(UBYTE SetFlag)
|
|
|
{
|
|
|
SLONG SumTemp = 0;
|
|
|
+ static BOOL OffSet_RefreshFlag = FALSE;
|
|
|
if(SetFlag == 1)
|
|
|
{
|
|
|
torsensor_stTorSensorCof.uwTorqueOffsetNow1 = TORQUEVOLREG1();
|
|
|
torsensor_stTorSensorCof.uwTorqueOffsetNow2 = TORQUEVOLREG2();
|
|
|
torsensor_stTorSensorCof.uwTorqueOffsetNow3 = TORQUEVOLREG3();
|
|
|
+ OffSet_RefreshFlag = TRUE;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
if(TorqueSensorRegFlt.SensorFlt1 < torsensor_stTorSensorCof.uwTorqueOffsetNow1)
|
|
|
+ {
|
|
|
torsensor_stTorSensorCof.uwTorqueOffsetNow1 = TorqueSensorRegFlt.SensorFlt1;
|
|
|
+ OffSet_RefreshFlag = TRUE;
|
|
|
+ }
|
|
|
if(TorqueSensorRegFlt.SensorFlt2 < torsensor_stTorSensorCof.uwTorqueOffsetNow2)
|
|
|
+ {
|
|
|
torsensor_stTorSensorCof.uwTorqueOffsetNow2 = TorqueSensorRegFlt.SensorFlt2;
|
|
|
+ OffSet_RefreshFlag = TRUE;
|
|
|
+ }
|
|
|
if(TorqueSensorRegFlt.SensorFlt3 < torsensor_stTorSensorCof.uwTorqueOffsetNow3)
|
|
|
+ {
|
|
|
torsensor_stTorSensorCof.uwTorqueOffsetNow3 = TorqueSensorRegFlt.SensorFlt3;
|
|
|
+ OffSet_RefreshFlag = TRUE;
|
|
|
+ }
|
|
|
}
|
|
|
- SumTemp = (TORQUEVOLREG1() - torsensor_stTorSensorCof.uwTorqueOffsetNow1) +
|
|
|
- (TORQUEVOLREG2() - torsensor_stTorSensorCof.uwTorqueOffsetNow2) +
|
|
|
- (TORQUEVOLREG3() - torsensor_stTorSensorCof.uwTorqueOffsetNow3);
|
|
|
- if(SumTemp <= 0)
|
|
|
+ if(OffSet_RefreshFlag == TRUE)
|
|
|
{
|
|
|
- torsensor_stTorSensorCof.uwTorqueOffset = 0;
|
|
|
- torsensor_stTorSensorCof.uwTorqueOffsetPowerUp = torsensor_stTorSensorCof.uwTorqueOffset;
|
|
|
- }
|
|
|
+ if(SumTemp <= 0)
|
|
|
+ {
|
|
|
+ torsensor_stTorSensorCof.uwTorqueOffset = 0;
|
|
|
+ torsensor_stTorSensorCof.uwTorqueOffsetPowerUp = torsensor_stTorSensorCof.uwTorqueOffset;
|
|
|
+ }
|
|
|
|
|
|
- else
|
|
|
- {
|
|
|
- torsensor_stTorSensorCof.uwTorqueOffset = SumTemp / 3;
|
|
|
- torsensor_stTorSensorCof.uwTorqueOffsetPowerUp = torsensor_stTorSensorCof.uwTorqueOffset;
|
|
|
+ else
|
|
|
+ {
|
|
|
+ torsensor_stTorSensorCof.uwTorqueOffset = SumTemp / 3;
|
|
|
+ torsensor_stTorSensorCof.uwTorqueOffsetPowerUp = torsensor_stTorSensorCof.uwTorqueOffset;
|
|
|
+ }
|
|
|
+ OffSet_RefreshFlag = FALSE;
|
|
|
}
|
|
|
}
|
|
|
|