|
|
@ -98,6 +98,7 @@ int32_t StepMotorCtrlModule::pri_module_xxx_reg(int32_t param_id, bool read, int |
|
|
|
PROCESS_REG(kreg_step_motor_pos, getnowpos(val), ACTION_NONE); |
|
|
|
PROCESS_REG(kreg_step_motor_is_enable, REG_GET(m_state.enable), ACTION_NONE); |
|
|
|
PROCESS_REG(kreg_step_motor_has_move_zero, REG_GET(m_state.has_move_to_zero), ACTION_NONE); |
|
|
|
PROCESS_REG(kreg_step_motor_lost_step, REG_GET(m_state.lost_step), ACTION_NONE); |
|
|
|
|
|
|
|
PROCESS_REG(kreg_step_motor_dpos, REG_GET(m_state.dpos), ACTION_NONE); |
|
|
|
PROCESS_REG(kreg_step_motor_shaft, REG_GET(m_cfg.motor_shaft), REG_SET(m_cfg.motor_shaft)); |
|
|
@ -253,6 +254,7 @@ void StepMotorCtrlModule::befor_motor_move() { // |
|
|
|
getnowpos(m_state.before_move_pos); |
|
|
|
creg.module_status = 1; |
|
|
|
creg.module_errorcode = 0; |
|
|
|
m_state.lost_step = 0; |
|
|
|
m_stepM1->enable(1); |
|
|
|
} |
|
|
|
void StepMotorCtrlModule::after_motor_move() { |
|
|
@ -295,7 +297,7 @@ bool StepMotorCtrlModule::check_when_run() { |
|
|
|
vPortExitCritical(); |
|
|
|
|
|
|
|
int32_t dm1 = abs(m1enc - m1pos); |
|
|
|
|
|
|
|
m_state.lost_step = dm1; |
|
|
|
if (m_cfg.pos_devi_tolerance != 0) { |
|
|
|
if (dm1 > m_cfg.pos_devi_tolerance) { |
|
|
|
ZLOGE(TAG, "motor pos devi %d", dm1); |
|
|
@ -704,8 +706,9 @@ int32_t StepMotorCtrlModule::do_step_motor_easy_move_to_io(int32_t ioindex, int3 |
|
|
|
int32_t StepMotorCtrlModule::do_step_motor_easy_move_to_end_point() { return do_step_motor_easy_move_to_io(1, 1); } |
|
|
|
|
|
|
|
void StepMotorCtrlModule::checkdpos(int32_t expect_dpos) { |
|
|
|
int32_t dpos = getnowpos() - m_state.before_move_pos; |
|
|
|
if (m_cfg.pos_devi_tolerance != 0 && (abs(expect_dpos - dpos) > m_cfg.pos_devi_tolerance)) { |
|
|
|
int32_t dpos = getnowpos() - m_state.before_move_pos; |
|
|
|
m_state.lost_step = expect_dpos - dpos; |
|
|
|
if (m_cfg.pos_devi_tolerance != 0 && (abs(m_state.lost_step) > m_cfg.pos_devi_tolerance)) { |
|
|
|
ZLOGE(TAG, "check pos devi tolerance fail.... dpos%d,expectation_dpos:%d", dpos, expect_dpos); |
|
|
|
setErrorFlag(err::kstep_motor_lost_step); |
|
|
|
} else { |
|
|
|