|
|
@ -394,8 +394,9 @@ void StepMotorCtrlModule::create_default_cfg(flash_config_t& cfg) { |
|
|
|
cfg.base_param.motor_one_circle_pulse = 10000; |
|
|
|
cfg.base_param.motor_one_circle_pulse_denominator = 1; |
|
|
|
cfg.base_param.stepmotor_ihold = 1; |
|
|
|
cfg.base_param.stepmotor_irun = 3; |
|
|
|
cfg.base_param.stepmotor_irun = 31; |
|
|
|
cfg.base_param.stepmotor_iholddelay = 100; |
|
|
|
cfg.base_param.stepmotor_iglobalscaler = 1; |
|
|
|
cfg.base_param.motor_default_acc = 300; |
|
|
|
cfg.base_param.motor_default_dec = 300; |
|
|
|
cfg.base_param.motor_default_velocity = 500; |
|
|
@ -430,6 +431,7 @@ int32_t StepMotorCtrlModule::factory_reset() { |
|
|
|
} |
|
|
|
void StepMotorCtrlModule::active_cfg() { |
|
|
|
m_stepM1->setIHOLD_IRUN(m_param.stepmotor_ihold, m_param.stepmotor_irun, m_param.stepmotor_iholddelay); |
|
|
|
// stepmotor_iglobalscaler
|
|
|
|
m_stepM1->setScale(m_param.motor_one_circle_pulse); |
|
|
|
m_stepM1->setScaleDenominator(m_param.motor_one_circle_pulse_denominator); |
|
|
|
m_stepM1->setMotorShaft(m_param.motor_shaft); |
|
|
@ -475,6 +477,7 @@ int32_t StepMotorCtrlModule::module_xxx_reg(int32_t param_id, bool read, int32_t |
|
|
|
PROCESS_REG(kreg_stepmotor_ihold, REG_GET(m_param.stepmotor_ihold), REG_SET(m_param.stepmotor_ihold)); |
|
|
|
PROCESS_REG(kreg_stepmotor_irun, REG_GET(m_param.stepmotor_irun), REG_SET(m_param.stepmotor_irun)); |
|
|
|
PROCESS_REG(kreg_stepmotor_iholddelay, REG_GET(m_param.stepmotor_iholddelay), REG_SET(m_param.stepmotor_iholddelay)); |
|
|
|
PROCESS_REG(kreg_stepmotor_iglobalscaler, REG_GET(m_param.stepmotor_iglobalscaler), REG_SET(m_param.stepmotor_iglobalscaler)); |
|
|
|
PROCESS_REG(kreg_motor_max_d, REG_GET(m_param.max_d), REG_SET(m_param.max_d)); |
|
|
|
PROCESS_REG(kreg_motor_min_d, REG_GET(m_param.min_d), REG_SET(m_param.min_d)); |
|
|
|
PROCESS_REG(kreg_module_input_state, module_readio(&val), ACTION_NONE); |
|
|
@ -733,7 +736,7 @@ int32_t StepMotorCtrlModule::_exec_move_to_io_task_fn(int32_t ioindex, int32_t d |
|
|
|
int32_t StepMotorCtrlModule::_exec_move_to_zero_task(int32_t& dx) { |
|
|
|
int32_t pos1 = 0; |
|
|
|
int32_t pos2 = 0; |
|
|
|
int32_t ret = 0; |
|
|
|
int32_t ret = 0; |
|
|
|
getnowpos(pos1); |
|
|
|
ret = _exec_move_to_zero_task(); |
|
|
|
getnowpos(pos2); |
|
|
|