@@ -441,7 +441,7 @@ static int foc_motor_torq(FAR struct foc_motor_b16_s *motor, uint32_t torq)
441441 tmp1 = itob16 (motor -> envp -> cfg -> torqmax / 1000 );
442442 tmp2 = b16mulb16 (ftob16 (SETPOINT_INTF_SCALE ), tmp1 );
443443
444- motor -> torq .des = b16muli (tmp2 , torq );
444+ motor -> torq .des = b16mulb16 ( motor -> dir , b16muli (tmp2 , torq ) );
445445
446446 return OK ;
447447}
@@ -466,7 +466,7 @@ static int foc_motor_vel(FAR struct foc_motor_b16_s *motor, uint32_t vel)
466466 tmp1 = itob16 (motor -> envp -> cfg -> velmax / 1000 );
467467 tmp2 = b16mulb16 (ftob16 (SETPOINT_INTF_SCALE ), tmp1 );
468468
469- motor -> vel .des = b16muli (tmp2 , vel );
469+ motor -> vel .des = b16mulb16 ( motor -> dir , b16muli (tmp2 , vel ) );
470470
471471 return OK ;
472472}
@@ -491,7 +491,7 @@ static int foc_motor_pos(FAR struct foc_motor_b16_s *motor, uint32_t pos)
491491 tmp1 = itob16 (motor -> envp -> cfg -> posmax / 1000 );
492492 tmp2 = b16mulb16 (ftob16 (SETPOINT_INTF_SCALE ), tmp1 );
493493
494- motor -> pos .des = b16muli (tmp2 , pos );
494+ motor -> pos .des = b16mulb16 ( motor -> dir , b16muli (tmp2 , pos ) );
495495
496496 return OK ;
497497}
@@ -914,7 +914,9 @@ static int foc_motor_run(FAR struct foc_motor_b16_s *motor)
914914#ifdef CONFIG_EXAMPLES_FOC_HAVE_TORQ
915915 case FOC_MMODE_TORQ :
916916 {
917- motor -> torq .set = b16mulb16 (motor -> dir , motor -> torq .des );
917+ /* Torque setpoint */
918+
919+ motor -> torq .set = motor -> torq .des ;
918920
919921 q_ref = motor -> torq .set ;
920922 d_ref = 0 ;
@@ -931,7 +933,7 @@ static int foc_motor_run(FAR struct foc_motor_b16_s *motor)
931933 /* Run velocity ramp controller */
932934
933935 ret = foc_ramp_run_b16 (& motor -> ramp ,
934- motor -> dir * motor -> vel .des ,
936+ motor -> vel .des ,
935937 motor -> vel .now ,
936938 & motor -> vel .set );
937939 if (ret < 0 )
0 commit comments