Browse Source

修改tmc51x0停止逻辑

master
zhaohe 10 months ago
parent
commit
ebf2296985
  1. 15
      tmcdriver/tmc51x0/tmc51x0.cpp

15
tmcdriver/tmc51x0/tmc51x0.cpp

@ -30,7 +30,7 @@ static const uint8_t tmc5130_defaultRegisterAccess[TMC5130_REGISTER_COUNT] = {
#endif
/***********************************************************************************************************************
* ? *
* ? *
***********************************************************************************************************************/
#define FIELD_SET(data, mask, shift, value) (data = (((data) & (~(mask))) | (((value) << (shift)) & (mask))))
@ -107,7 +107,7 @@ void TMC51X0::writeField(uint8_t add, uint32_t mask, uint32_t shift, uint32_t va
int32_t TMC51X0::readInt(uint8_t address) {
/**
* @WARNING:
* ?
* ?
*/
address = TMC51x0_ADDRESS(address);
@ -176,8 +176,17 @@ int32_t TMC51X0::to_user_vel(int32_t vel) { //
***********************************************************************************************************************/
void TMC51X0::stop() {
zlock_guard lkg(m_mutex);
int mode = readInt(TMC5130_RAMPMODE);
if (mode == TMC5130_MODE_POSITION) {
// writeInt(TMC5130_RAMPMODE, TMC5130_MODE_POSITION);
writeInt(TMC5130_VMAX, 0);
while (getVACTUAL() > 5) {
osDelay(2);
}
writeInt(TMC5130_XTARGET, readInt(TMC5130_XACTUAL));
} else {
rotate(0);
}
}
void TMC51X0::rotate(int32_t velocity) {
zlock_guard lkg(m_mutex);

Loading…
Cancel
Save