Library for Trinamic TMC2209 stepper modules to drive bipolar stepper motors. Ported and adapted from https://github.com/teemuatlut/TMCStepper
CHOPCONF.cpp
00001 #include "TMCStepper.h" 00002 #include "TMC_MACROS.h" 00003 00004 #define SET_REG(SETTING) CHOPCONF_register.SETTING = B; write(CHOPCONF_register.address, CHOPCONF_register.sr) 00005 00006 // CHOPCONF 00007 /* 00008 uint32_t TMC2130Stepper::CHOPCONF() { 00009 return read(CHOPCONF_register.address); 00010 } 00011 void TMC2130Stepper::CHOPCONF(uint32_t input) { 00012 CHOPCONF_register.sr = input; 00013 write(CHOPCONF_register.address, CHOPCONF_register.sr); 00014 } 00015 00016 void TMC2130Stepper::toff( uint8_t B ) { SET_REG(toff); } 00017 void TMC2130Stepper::hstrt( uint8_t B ) { SET_REG(hstrt); } 00018 void TMC2130Stepper::hend( uint8_t B ) { SET_REG(hend); } 00019 //void TMC2130Stepper::fd( uint8_t B ) { SET_REG(fd); } 00020 void TMC2130Stepper::disfdcc( bool B ) { SET_REG(disfdcc); } 00021 void TMC2130Stepper::rndtf( bool B ) { SET_REG(rndtf); } 00022 void TMC2130Stepper::chm( bool B ) { SET_REG(chm); } 00023 void TMC2130Stepper::tbl( uint8_t B ) { SET_REG(tbl); } 00024 void TMC2130Stepper::vsense( bool B ) { SET_REG(vsense); } 00025 void TMC2130Stepper::vhighfs( bool B ) { SET_REG(vhighfs); } 00026 void TMC2130Stepper::vhighchm( bool B ) { SET_REG(vhighchm);} 00027 void TMC2130Stepper::sync( uint8_t B ) { SET_REG(sync); } 00028 void TMC2130Stepper::mres( uint8_t B ) { SET_REG(mres); } 00029 void TMC2130Stepper::intpol( bool B ) { SET_REG(intpol); } 00030 void TMC2130Stepper::dedge( bool B ) { SET_REG(dedge); } 00031 void TMC2130Stepper::diss2g( bool B ) { SET_REG(diss2g); } 00032 00033 uint8_t TMC2130Stepper::toff() { CHOPCONF_t r{0}; r.sr = CHOPCONF(); return r.toff; } 00034 uint8_t TMC2130Stepper::hstrt() { CHOPCONF_t r{0}; r.sr = CHOPCONF(); return r.hstrt; } 00035 uint8_t TMC2130Stepper::hend() { CHOPCONF_t r{0}; r.sr = CHOPCONF(); return r.hend; } 00036 //uint8_t TMC2130Stepper::fd() { CHOPCONF_t r{0}; r.sr = CHOPCONF(); return r.fd; } 00037 bool TMC2130Stepper::disfdcc() { CHOPCONF_t r{0}; r.sr = CHOPCONF(); return r.disfdcc; } 00038 bool TMC2130Stepper::rndtf() { CHOPCONF_t r{0}; r.sr = CHOPCONF(); return r.rndtf; } 00039 bool TMC2130Stepper::chm() { CHOPCONF_t r{0}; r.sr = CHOPCONF(); return r.chm; } 00040 uint8_t TMC2130Stepper::tbl() { CHOPCONF_t r{0}; r.sr = CHOPCONF(); return r.tbl; } 00041 bool TMC2130Stepper::vsense() { CHOPCONF_t r{0}; r.sr = CHOPCONF(); return r.vsense; } 00042 bool TMC2130Stepper::vhighfs() { CHOPCONF_t r{0}; r.sr = CHOPCONF(); return r.vhighfs; } 00043 bool TMC2130Stepper::vhighchm() { CHOPCONF_t r{0}; r.sr = CHOPCONF(); return r.vhighchm;} 00044 uint8_t TMC2130Stepper::sync() { CHOPCONF_t r{0}; r.sr = CHOPCONF(); return r.sync; } 00045 uint8_t TMC2130Stepper::mres() { CHOPCONF_t r{0}; r.sr = CHOPCONF(); return r.mres; } 00046 bool TMC2130Stepper::intpol() { CHOPCONF_t r{0}; r.sr = CHOPCONF(); return r.intpol; } 00047 bool TMC2130Stepper::dedge() { CHOPCONF_t r{0}; r.sr = CHOPCONF(); return r.dedge; } 00048 bool TMC2130Stepper::diss2g() { CHOPCONF_t r{0}; r.sr = CHOPCONF(); return r.diss2g; } 00049 00050 void TMC5160Stepper::diss2vs(bool B){ SET_REG(diss2vs); } 00051 void TMC5160Stepper::tpfd(uint8_t B){ SET_REG(tpfd); } 00052 bool TMC5160Stepper::diss2vs() { CHOPCONF_t r{0}; r.sr = CHOPCONF(); return r.diss2vs; } 00053 uint8_t TMC5160Stepper::tpfd() { CHOPCONF_t r{0}; r.sr = CHOPCONF(); return r.tpfd; } 00054 */ 00055 void TMC2208Stepper::CHOPCONF(uint32_t input) { 00056 CHOPCONF_register.sr = input; 00057 write(CHOPCONF_register.address, CHOPCONF_register.sr); 00058 } 00059 uint32_t TMC2208Stepper::CHOPCONF() { 00060 return read(CHOPCONF_register.address); 00061 } 00062 void TMC2208Stepper::toff ( uint8_t B ) { SET_REG(toff); } 00063 void TMC2208Stepper::hstrt ( uint8_t B ) { SET_REG(hstrt); } 00064 void TMC2208Stepper::hend ( uint8_t B ) { SET_REG(hend); } 00065 void TMC2208Stepper::tbl ( uint8_t B ) { SET_REG(tbl); } 00066 void TMC2208Stepper::vsense ( bool B ) { SET_REG(vsense); } 00067 void TMC2208Stepper::mres ( uint8_t B ) { SET_REG(mres); } 00068 void TMC2208Stepper::intpol ( bool B ) { SET_REG(intpol); } 00069 void TMC2208Stepper::dedge ( bool B ) { SET_REG(dedge); } 00070 void TMC2208Stepper::diss2g ( bool B ) { SET_REG(diss2g); } 00071 void TMC2208Stepper::diss2vs( bool B ) { SET_REG(diss2vs); } 00072 00073 uint8_t TMC2208Stepper::toff() { TMC2208_n::CHOPCONF_t r{0}; r.sr = CHOPCONF(); return r.toff; } 00074 uint8_t TMC2208Stepper::hstrt() { TMC2208_n::CHOPCONF_t r{0}; r.sr = CHOPCONF(); return r.hstrt; } 00075 uint8_t TMC2208Stepper::hend() { TMC2208_n::CHOPCONF_t r{0}; r.sr = CHOPCONF(); return r.hend; } 00076 uint8_t TMC2208Stepper::tbl() { TMC2208_n::CHOPCONF_t r{0}; r.sr = CHOPCONF(); return r.tbl; } 00077 bool TMC2208Stepper::vsense() { TMC2208_n::CHOPCONF_t r{0}; r.sr = CHOPCONF(); return r.vsense; } 00078 uint8_t TMC2208Stepper::mres() { TMC2208_n::CHOPCONF_t r{0}; r.sr = CHOPCONF(); return r.mres; } 00079 bool TMC2208Stepper::intpol() { TMC2208_n::CHOPCONF_t r{0}; r.sr = CHOPCONF(); return r.intpol; } 00080 bool TMC2208Stepper::dedge() { TMC2208_n::CHOPCONF_t r{0}; r.sr = CHOPCONF(); return r.dedge; } 00081 bool TMC2208Stepper::diss2g() { TMC2208_n::CHOPCONF_t r{0}; r.sr = CHOPCONF(); return r.diss2g; } 00082 bool TMC2208Stepper::diss2vs() { TMC2208_n::CHOPCONF_t r{0}; r.sr = CHOPCONF(); return r.diss2vs; } 00083 /* 00084 #define GET_REG_2660(SETTING) return CHOPCONF_register.SETTING; 00085 00086 uint32_t TMC2660Stepper::CHOPCONF() { return CHOPCONF_register.sr; } 00087 void TMC2660Stepper::CHOPCONF(uint32_t data) { 00088 CHOPCONF_register.sr = data; 00089 write(CHOPCONF_register.address, CHOPCONF_register.sr); 00090 } 00091 00092 void TMC2660Stepper::toff(uint8_t B) { 00093 SET_REG(toff); 00094 if (B>0) _savedToff = B; 00095 } 00096 void TMC2660Stepper::hstrt(uint8_t B) { SET_REG(hstrt); } 00097 void TMC2660Stepper::hend(uint8_t B) { SET_REG(hend); } 00098 void TMC2660Stepper::hdec(uint8_t B) { SET_REG(hdec); } 00099 void TMC2660Stepper::rndtf(bool B) { SET_REG(rndtf); } 00100 void TMC2660Stepper::chm(bool B) { SET_REG(chm); } 00101 void TMC2660Stepper::tbl(uint8_t B) { SET_REG(tbl); } 00102 00103 uint8_t TMC2660Stepper::toff() { GET_REG_2660(toff); } 00104 uint8_t TMC2660Stepper::hstrt() { GET_REG_2660(hstrt); } 00105 uint8_t TMC2660Stepper::hend() { GET_REG_2660(hend); } 00106 uint8_t TMC2660Stepper::hdec() { GET_REG_2660(hdec); } 00107 bool TMC2660Stepper::rndtf() { GET_REG_2660(rndtf); } 00108 bool TMC2660Stepper::chm() { GET_REG_2660(chm); } 00109 uint8_t TMC2660Stepper::tbl() { GET_REG_2660(tbl); } 00110 */
Generated on Wed Jul 13 2022 22:52:51 by
1.7.2