@@ -187,19 +187,14 @@ int main(void)
187187 }
188188 HAL_Delay (200 );
189189
190- Send_CAN_Command (REG_MOTOR_PROTECT_UNLOCK ,MOTOR_PROTECT_UNLOCK_KEY );
191- Send_CAN_Command (REG_MOTOR_TORQUE_GAUGE_GAIN ,30 ); // 30=neuer Gauge_Gain
192- ui16_Gauge_Gain = 0 ;
193- Send_CAN_Request (REG_MOTOR_TORQUE_GAUGE_GAIN ); // Gauge_Gain abfragen, nur zur Kontrolle
194- ui16_Gauge_Gain = RxData [3 ];
195-
196190 MS .Gauge_Ext_Torq_Flag = 1 ; //set torque source to external BB-sensor by default. Is overwritten by KT-LCD setting of P3 at runtime.
197- MS .Assist_Level = 1 ; //set Assistlevel to 3 as default value
191+ MS .Assist_Level = 3 ; //set Assistlevel to 3 as default value
198192 MS .Gauge_Factor = 127 ; //default for global gain for torque measurement, set by Kunteng Paramter P1 0 ... 255
199- MS .Regen_Factor = 2 ; //default regen strenght for brake lever regen
193+ MS .Regen_Factor = 4 ; //default regen strenght for brake lever regen
200194 MS .Throttle_Function = 0 ; //Throttle override for power and regen
201- MS .Min_Voltage = 20000 ; //minimum Voltage (mV) for 10s pack as default
202- MS .Max_Voltage = 46000 ; //maximum Voltage (mV) for 10s pack as default
195+ MS .Min_Voltage = 33000 ; //minimum Voltage (mV) for 10s pack as default
196+ MS .Max_Voltage = 41500 ; //maximum Voltage (mV) for 10s pack as default
197+ MS .Filter = 6 ; //Filter over 64 readings as default.
203198
204199 /* USER CODE END 2 */
205200
@@ -273,7 +268,7 @@ int main(void)
273268 i16_PAS_Duration = i16_PAS_Counter ;
274269 i16_PAS_Counter = 0 ;
275270 ui16_Ext_Torque = map (adcData [1 ],EXT_TORQUE_MIN , EXT_TORQUE_MAX , 0 , 1024 ); //map throttle ADC-value to valid LEVEL range
276- ui32_Ext_Torque_Cumulated -= ui32_Ext_Torque_Cumulated >>FILTER ;
271+ ui32_Ext_Torque_Cumulated -= ui32_Ext_Torque_Cumulated >>MS . Filter ;
277272 ui32_Ext_Torque_Cumulated += ui16_Ext_Torque ;
278273
279274 }
@@ -293,10 +288,10 @@ int main(void)
293288 if (!MS .Throttle_Function )i8_Throttle = - i8_Throttle ;
294289 }
295290 // if internal Gauge is active (selected by P3), calculate current target form Gauge Value,
296- else if (MS .Gauge_Ext_Torq_Flag )i16_Current_Target = (CALIB_GAUGE * (i32_Gauge_Torque_cumulated >>FILTER )* MS .Assist_Level * MS .Gauge_Factor )>>7 ; //normal ride mode
291+ else if (MS .Gauge_Ext_Torq_Flag )i16_Current_Target = (CALIB_GAUGE * (i32_Gauge_Torque_cumulated >>MS . Filter )* MS .Assist_Level * MS .Gauge_Factor )>>7 ; //normal ride mode
297292 // if external torque sensor is active
298293 else {
299- i16_Current_Target = (((ui32_Ext_Torque_Cumulated >>FILTER )* MS .Assist_Level * MS .Gauge_Factor )>>CALIB_EXT_TORQUE )/(i16_PAS_Duration * (MS .Speed + 1 ));
294+ i16_Current_Target = (((ui32_Ext_Torque_Cumulated >>MS . Filter )* MS .Assist_Level * MS .Gauge_Factor )>>CALIB_EXT_TORQUE )/(i16_PAS_Duration * (MS .Speed + 1 ));
300295 if (i16_PAS_Counter > PAS_TIMEOUT - 1 ){
301296 i16_Current_Target = 0 ; //Switch off power, if pedals are not turning
302297 if (ui32_Ext_Torque_Cumulated > 0 )ui32_Ext_Torque_Cumulated -- ;
@@ -412,6 +407,11 @@ int main(void)
412407
413408 case 4 :
414409 Send_CAN_Request (REG_MOTOR_STATUS_POWER_VOLTAGE_LO );
410+ l ++ ;
411+ break ;
412+
413+ case 5 :
414+ Send_CAN_Request (REG_MOTOR_TORQUE_GAUGE_GAIN );
415415 l = 0 ;
416416 break ;
417417/*
@@ -450,7 +450,7 @@ int main(void)
450450
451451 case REG_MOTOR_TORQUE_GAUGE_VALUE :
452452 i16_Gauge_Torque = RxData [3 ];
453- i32_Gauge_Torque_cumulated -= (i32_Gauge_Torque_cumulated >>FILTER ); // FILTER = 6 für 1s Zeitkonstante
453+ i32_Gauge_Torque_cumulated -= (i32_Gauge_Torque_cumulated >>MS . Filter ); // FILTER = 6 für 1s Zeitkonstante
454454 i32_Gauge_Torque_cumulated += i16_Gauge_Torque ;
455455
456456 break ;
@@ -501,6 +501,12 @@ int main(void)
501501
502502 break ;
503503
504+ case REG_MOTOR_TORQUE_GAUGE_GAIN :
505+
506+ ui16_Gauge_Gain = RxData [3 ];
507+
508+ break ;
509+
504510
505511
506512 }
0 commit comments