Browse Source

paint_robot_new v1.0【编译通过】速度控制改为直接使用数字而不是结构体

master
Lizongdi 12 hours ago
parent
commit
775edf467f
  1. 4
      project/paint_robot_new/paint_robot_new.c
  2. 24
      project/paint_robot_new/paint_robot_new_motors.c

4
project/paint_robot_new/paint_robot_new.c

@ -61,10 +61,6 @@ static void Custom_ModuleHandler(const Msg_t *pstMsg)
case CUSTOM_GET_PV: case CUSTOM_GET_PV:
{ {
//log_i("RBCORE_CMD_STOP_ALL"); //log_i("RBCORE_CMD_STOP_ALL");
Motor_CmdData_t tMotor_CmdData_t = {0};
tMotor_CmdData_t.m_ucMotorIndex = 1;
tMotor_CmdData_t.m_iValue = (int32_t)pstMsg->m_aucData;
MsgCenter_SendTo(MODULE_NAME_MOTOR, MOTOR_CMD_SET_SPEED, (void *)&tMotor_CmdData_t, sizeof(Motor_CmdData_t));
break; break;
} }
default: default:

24
project/paint_robot_new/paint_robot_new_motors.c

@ -41,6 +41,7 @@
*----------------------------------------------*/ *----------------------------------------------*/
static Motor_Instance_t *g_apstMotors[MOTOR_INSTANCE_MAX] = {NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL}; static Motor_Instance_t *g_apstMotors[MOTOR_INSTANCE_MAX] = {NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL};
static uint32_t g_uiMotorModuleID = 0; static uint32_t g_uiMotorModuleID = 0;
static int g_aiMotorSpeed[MOTOR_INSTANCE_MAX] = {0};
/*----------------------------------------------* /*----------------------------------------------*
* * * *
@ -61,14 +62,10 @@ static void Motor_ModuleHandler(const Msg_t *pstMsg)
{ {
case MOTOR_CMD_SET_SPEED: case MOTOR_CMD_SET_SPEED:
{ {
if (pstMsg->m_uiDataLen >= sizeof(Motor_CmdData_t)) int iSpeed = (int)pstMsg->m_aucData;
{ log_i("Set Speed %d", iSpeed);
Motor_CmdData_t *pstData = (Motor_CmdData_t *)pstMsg->m_aucData; // g_aiMotorSpeed[0] = iSpeed;
if (pstData->m_ucMotorIndex < 2 && g_apstMotors[pstData->m_ucMotorIndex] != NULL) // g_aiMotorSpeed[1] = iSpeed;
{
MotorMgr_SetTargetSpeed(g_apstMotors[pstData->m_ucMotorIndex], pstData->m_iValue);
}
}
break; break;
} }
case MOTOR_CMD_STOP: case MOTOR_CMD_STOP:
@ -84,14 +81,7 @@ static void Motor_ModuleHandler(const Msg_t *pstMsg)
} }
case MOTOR_CMD_SET_HOME: case MOTOR_CMD_SET_HOME:
{ {
if (pstMsg->m_uiDataLen >= sizeof(Motor_CmdData_t)) log_i("Not Support [%d]", pstMsg->m_uiMsgID);
{
Motor_CmdData_t *pstData = (Motor_CmdData_t *)pstMsg->m_aucData;
if (pstData->m_ucMotorIndex < 2 && g_apstMotors[pstData->m_ucMotorIndex] != NULL)
{
MotorMgr_SetHome(g_apstMotors[pstData->m_ucMotorIndex]);
}
}
break; break;
} }
case MOTOR_CMD_GET_STATUS: case MOTOR_CMD_GET_STATUS:
@ -234,7 +224,7 @@ void MotorTask(void *argument)
MotorMgr_RequestPosition(g_apstMotors[i]); MotorMgr_RequestPosition(g_apstMotors[i]);
MotorMgr_RequestFault(g_apstMotors[i]); MotorMgr_RequestFault(g_apstMotors[i]);
MotorMgr_RequestVelocity(g_apstMotors[i]); MotorMgr_RequestVelocity(g_apstMotors[i]);
MotorMgr_SetTargetSpeed(g_apstMotors[i], 50000); MotorMgr_SetTargetSpeed(g_apstMotors[i], g_aiMotorSpeed[i]);
} }
} }

Loading…
Cancel
Save