|
|
@ -12,10 +12,6 @@ |
|
|
|
namespace iflytop { |
|
|
|
/**
|
|
|
|
* @brief |
|
|
|
* 瘜冽�鈭钅★ |
|
|
|
* |
|
|
|
* 1. 6�孵���綉�嗅蘨�其�蝵?璅∪�銝𧢲�����券�笔漲璅∪�銝𧢲��? |
|
|
|
* 2. �笔漲璅∪�銝见蘨�𡅅MAX�㗇� |
|
|
|
* |
|
|
|
*/ |
|
|
|
class TMC51X0Cfg { |
|
|
@ -40,7 +36,7 @@ class TMC51X0 { |
|
|
|
int32_t m_scale_deceleration = 1; |
|
|
|
mres_type_t m_MRES = kmres_256; |
|
|
|
double m_onecirclepulse = 51200; |
|
|
|
int32_t m_enc_resolution = 0; // 蝻𣇉��典�颲函�嚗屸�霈文蘨�匧銁256蝏������萎��㗇�
|
|
|
|
int32_t m_enc_resolution = 0; //
|
|
|
|
|
|
|
|
zmutex m_mutex = {"TMC51X0"}; |
|
|
|
bool m_driErr = false; |
|
|
@ -49,9 +45,7 @@ class TMC51X0 { |
|
|
|
void initialize(TMC51X0Cfg cfg); |
|
|
|
|
|
|
|
private: |
|
|
|
/*******************************************************************************
|
|
|
|
* 撽勗𢆡�典�摮睃膥霂餃��寞� * |
|
|
|
*******************************************************************************/ |
|
|
|
|
|
|
|
void readWriteArray(uint8_t *data, size_t length); |
|
|
|
void writeDatagram(uint8_t address, uint8_t x1, uint8_t x2, uint8_t x3, uint8_t x4); |
|
|
|
void writeInt(uint8_t address, int32_t value); |
|
|
@ -76,21 +70,23 @@ class TMC51X0 { |
|
|
|
/***********************************************************************************************************************
|
|
|
|
* get state * |
|
|
|
***********************************************************************************************************************/ |
|
|
|
int32_t getXACTUAL(); // 敶枏�雿滨蔭
|
|
|
|
int32_t getVACTUAL(); // 敶枏��笔漲
|
|
|
|
int32_t getXACTUAL(); // now pos
|
|
|
|
int32_t getVACTUAL(); // now vel
|
|
|
|
int32_t getEncVal(); // ENCVAL
|
|
|
|
TMC5130RampStat getRampStat(); |
|
|
|
TMC5130DevStatusReg_t getDevStatus(); // R 霂餃�銝齿�
|
|
|
|
TMC5130GState_t getGState(); // R+C 霂餃��?�冽��?
|
|
|
|
TMC5130DevStatusReg_t getDevStatus(); // R
|
|
|
|
TMC5130GState_t getGState(); // R+C read and clear
|
|
|
|
int32_t readICVersion(); |
|
|
|
|
|
|
|
bool isReachTarget(TMC5130RampStat *state); // �?�血�颲曄𤌍���蝵?
|
|
|
|
int32_t getXactualRAW();// now pos 51200
|
|
|
|
|
|
|
|
bool isReachTarget(TMC5130RampStat *state); // is reach target
|
|
|
|
bool isTMC5130(); |
|
|
|
|
|
|
|
/***********************************************************************************************************************
|
|
|
|
* set state * |
|
|
|
***********************************************************************************************************************/ |
|
|
|
void setXACTUAL(int32_t value); // 霈曄蔭敶枏�雿滨蔭
|
|
|
|
void setXACTUAL(int32_t value); // set pos
|
|
|
|
void setMotorShaft(bool reverse); |
|
|
|
void setIHOLD_IRUN(uint8_t ihold, uint8_t irun, uint16_t iholddelay); |
|
|
|
void setGlobalScale(uint8_t globalscale); // ONLY for 5160
|
|
|
|