|
|
@ -18,6 +18,7 @@ |
|
|
******************************************************************************/ |
|
|
******************************************************************************/ |
|
|
|
|
|
|
|
|
#include "msp_motor_leisai.h" |
|
|
#include "msp_motor_leisai.h" |
|
|
|
|
|
#include "rd_time.h" |
|
|
|
|
|
|
|
|
/*----------------------------------------------*
|
|
|
/*----------------------------------------------*
|
|
|
* 外部变量说明 * |
|
|
* 外部变量说明 * |
|
|
@ -183,10 +184,7 @@ static int LeiSai_ActivateAll(Motor_Instance_t *pstMotor) |
|
|
return RD_NULL; |
|
|
return RD_NULL; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
uint8_t aucData1[2] = {0x01, 0x01}; |
|
|
uint8_t aucData2[2] = {0x01, pstMotor->m_stConfig.m_ucMotorID}; |
|
|
rd_ComIDSend(pstMotor->m_ptCAN, 0x000, (char *)aucData1, 2); |
|
|
|
|
|
|
|
|
|
|
|
uint8_t aucData2[2] = {0x01, 0x02}; |
|
|
|
|
|
return rd_ComIDSend(pstMotor->m_ptCAN, 0x000, (char *)aucData2, 2); |
|
|
return rd_ComIDSend(pstMotor->m_ptCAN, 0x000, (char *)aucData2, 2); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@ -202,11 +200,17 @@ static int LeiSai_SetHome(Motor_Instance_t *pstMotor) |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
LeiSai_SendSDO(pstMotor, LEISAI_SDO_CMD_WRITE_1B, LEISAI_OD_MODE_OF_OPERATION, 0x00, LEISAI_MODE_HOMING); |
|
|
LeiSai_SendSDO(pstMotor, LEISAI_SDO_CMD_WRITE_1B, LEISAI_OD_MODE_OF_OPERATION, 0x00, LEISAI_MODE_HOMING); |
|
|
|
|
|
Rd_Delay(50); |
|
|
LeiSai_SendSDO(pstMotor, LEISAI_SDO_CMD_WRITE_1B, LEISAI_OD_HOMING_METHOD, 0x00, 0x23); |
|
|
LeiSai_SendSDO(pstMotor, LEISAI_SDO_CMD_WRITE_1B, LEISAI_OD_HOMING_METHOD, 0x00, 0x23); |
|
|
|
|
|
Rd_Delay(50); |
|
|
LeiSai_SendSDO(pstMotor, LEISAI_SDO_CMD_WRITE_2B, LEISAI_OD_CONTROL_WORD, 0x00, LEISAI_CTRL_SHUTDOWN); |
|
|
LeiSai_SendSDO(pstMotor, LEISAI_SDO_CMD_WRITE_2B, LEISAI_OD_CONTROL_WORD, 0x00, LEISAI_CTRL_SHUTDOWN); |
|
|
|
|
|
Rd_Delay(50); |
|
|
LeiSai_SendSDO(pstMotor, LEISAI_SDO_CMD_WRITE_2B, LEISAI_OD_CONTROL_WORD, 0x00, LEISAI_CTRL_SWITCH_ON); |
|
|
LeiSai_SendSDO(pstMotor, LEISAI_SDO_CMD_WRITE_2B, LEISAI_OD_CONTROL_WORD, 0x00, LEISAI_CTRL_SWITCH_ON); |
|
|
|
|
|
Rd_Delay(50); |
|
|
LeiSai_SendSDO(pstMotor, LEISAI_SDO_CMD_WRITE_2B, LEISAI_OD_CONTROL_WORD, 0x00, LEISAI_CTRL_ENABLE); |
|
|
LeiSai_SendSDO(pstMotor, LEISAI_SDO_CMD_WRITE_2B, LEISAI_OD_CONTROL_WORD, 0x00, LEISAI_CTRL_ENABLE); |
|
|
|
|
|
Rd_Delay(50); |
|
|
LeiSai_SendSDO(pstMotor, LEISAI_SDO_CMD_WRITE_2B, LEISAI_OD_CONTROL_WORD, 0x00, LEISAI_CTRL_START_MOVE); |
|
|
LeiSai_SendSDO(pstMotor, LEISAI_SDO_CMD_WRITE_2B, LEISAI_OD_CONTROL_WORD, 0x00, LEISAI_CTRL_START_MOVE); |
|
|
|
|
|
Rd_Delay(50); |
|
|
|
|
|
|
|
|
return RD_SUCCESS; |
|
|
return RD_SUCCESS; |
|
|
} |
|
|
} |
|
|
@ -293,10 +297,15 @@ static int LeiSai_SpeedModeInit(Motor_Instance_t *pstMotor) |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
LeiSai_SendSDO(pstMotor, LEISAI_SDO_CMD_WRITE_2B, LEISAI_OD_CONTROL_WORD, 0x00, LEISAI_CTRL_SHUTDOWN); |
|
|
LeiSai_SendSDO(pstMotor, LEISAI_SDO_CMD_WRITE_2B, LEISAI_OD_CONTROL_WORD, 0x00, LEISAI_CTRL_SHUTDOWN); |
|
|
|
|
|
Rd_Delay(10); |
|
|
LeiSai_SendSDO(pstMotor, LEISAI_SDO_CMD_WRITE_2B, LEISAI_OD_CONTROL_WORD, 0x00, LEISAI_CTRL_SWITCH_ON); |
|
|
LeiSai_SendSDO(pstMotor, LEISAI_SDO_CMD_WRITE_2B, LEISAI_OD_CONTROL_WORD, 0x00, LEISAI_CTRL_SWITCH_ON); |
|
|
|
|
|
Rd_Delay(10); |
|
|
LeiSai_SendSDO(pstMotor, LEISAI_SDO_CMD_WRITE_2B, LEISAI_OD_CONTROL_WORD, 0x00, LEISAI_CTRL_ENABLE); |
|
|
LeiSai_SendSDO(pstMotor, LEISAI_SDO_CMD_WRITE_2B, LEISAI_OD_CONTROL_WORD, 0x00, LEISAI_CTRL_ENABLE); |
|
|
|
|
|
Rd_Delay(10); |
|
|
LeiSai_SendSDO(pstMotor, LEISAI_SDO_CMD_WRITE_1B, LEISAI_OD_MODE_OF_OPERATION, 0x00, LEISAI_MODE_PROFILE_VEL); |
|
|
LeiSai_SendSDO(pstMotor, LEISAI_SDO_CMD_WRITE_1B, LEISAI_OD_MODE_OF_OPERATION, 0x00, LEISAI_MODE_PROFILE_VEL); |
|
|
|
|
|
Rd_Delay(10); |
|
|
LeiSai_SendSDO(pstMotor, LEISAI_SDO_CMD_WRITE_4B, LEISAI_OD_TARGET_VELOCITY, 0x00, 0); |
|
|
LeiSai_SendSDO(pstMotor, LEISAI_SDO_CMD_WRITE_4B, LEISAI_OD_TARGET_VELOCITY, 0x00, 0); |
|
|
|
|
|
Rd_Delay(10); |
|
|
|
|
|
|
|
|
return RD_SUCCESS; |
|
|
return RD_SUCCESS; |
|
|
} |
|
|
} |
|
|
|