Library for Trinamic TMC2209 stepper modules to drive bipolar stepper motors. Ported and adapted from https://github.com/teemuatlut/TMCStepper
PWMCONF.cpp
00001 #include "TMCStepper.h" 00002 #include "TMC_MACROS.h" 00003 00004 #define SET_REG(SETTING) PWMCONF_register.SETTING = B; write(PWMCONF_register.address, PWMCONF_register.sr) 00005 #define GET_REG(SETTING) return PWMCONF_register.SETTING 00006 00007 // PWMCONF 00008 /* 00009 uint32_t TMC2130Stepper::PWMCONF() { return PWMCONF_register.sr; } 00010 void TMC2130Stepper::PWMCONF(uint32_t input) { 00011 PWMCONF_register.sr = input; 00012 write(PWMCONF_register.address, PWMCONF_register.sr); 00013 } 00014 00015 void TMC2130Stepper::pwm_ampl( uint8_t B ) { SET_REG(pwm_ampl); } 00016 void TMC2130Stepper::pwm_grad( uint8_t B ) { SET_REG(pwm_grad); } 00017 void TMC2130Stepper::pwm_freq( uint8_t B ) { SET_REG(pwm_freq); } 00018 void TMC2130Stepper::pwm_autoscale( bool B ) { SET_REG(pwm_autoscale); } 00019 void TMC2130Stepper::pwm_symmetric( bool B ) { SET_REG(pwm_symmetric); } 00020 void TMC2130Stepper::freewheel( uint8_t B ) { SET_REG(freewheel); } 00021 00022 uint8_t TMC2130Stepper::pwm_ampl() { GET_REG(pwm_ampl); } 00023 uint8_t TMC2130Stepper::pwm_grad() { GET_REG(pwm_grad); } 00024 uint8_t TMC2130Stepper::pwm_freq() { GET_REG(pwm_freq); } 00025 bool TMC2130Stepper::pwm_autoscale() { GET_REG(pwm_autoscale); } 00026 bool TMC2130Stepper::pwm_symmetric() { GET_REG(pwm_symmetric); } 00027 uint8_t TMC2130Stepper::freewheel() { GET_REG(freewheel); } 00028 00029 uint32_t TMC2160Stepper::PWMCONF() { 00030 return PWMCONF_register.sr; 00031 } 00032 void TMC2160Stepper::PWMCONF(uint32_t input) { 00033 PWMCONF_register.sr = input; 00034 write(PWMCONF_register.address, PWMCONF_register.sr); 00035 } 00036 00037 void TMC2160Stepper::pwm_ofs ( uint8_t B ) { PWMCONF_register.pwm_ofs = B; write(PWMCONF_register.address, PWMCONF_register.sr); } 00038 void TMC2160Stepper::pwm_grad ( uint8_t B ) { PWMCONF_register.pwm_grad = B; write(PWMCONF_register.address, PWMCONF_register.sr); } 00039 void TMC2160Stepper::pwm_freq ( uint8_t B ) { PWMCONF_register.pwm_freq = B; write(PWMCONF_register.address, PWMCONF_register.sr); } 00040 void TMC2160Stepper::pwm_autoscale ( bool B ) { PWMCONF_register.pwm_autoscale = B; write(PWMCONF_register.address, PWMCONF_register.sr); } 00041 void TMC2160Stepper::pwm_autograd ( bool B ) { PWMCONF_register.pwm_autograd = B; write(PWMCONF_register.address, PWMCONF_register.sr); } 00042 void TMC2160Stepper::freewheel ( uint8_t B ) { PWMCONF_register.freewheel = B; write(PWMCONF_register.address, PWMCONF_register.sr); } 00043 void TMC2160Stepper::pwm_reg ( uint8_t B ) { PWMCONF_register.pwm_reg = B; write(PWMCONF_register.address, PWMCONF_register.sr); } 00044 void TMC2160Stepper::pwm_lim ( uint8_t B ) { PWMCONF_register.pwm_lim = B; write(PWMCONF_register.address, PWMCONF_register.sr); } 00045 00046 uint8_t TMC2160Stepper::pwm_ofs() { return PWMCONF_register.pwm_ofs; } 00047 uint8_t TMC2160Stepper::pwm_grad() { return PWMCONF_register.pwm_grad; } 00048 uint8_t TMC2160Stepper::pwm_freq() { return PWMCONF_register.pwm_freq; } 00049 bool TMC2160Stepper::pwm_autoscale() { return PWMCONF_register.pwm_autoscale;} 00050 bool TMC2160Stepper::pwm_autograd() { return PWMCONF_register.pwm_autograd; } 00051 uint8_t TMC2160Stepper::freewheel() { return PWMCONF_register.freewheel; } 00052 uint8_t TMC2160Stepper::pwm_reg() { return PWMCONF_register.pwm_reg; } 00053 uint8_t TMC2160Stepper::pwm_lim() { return PWMCONF_register.pwm_lim; } 00054 */ 00055 uint32_t TMC2208Stepper::PWMCONF() { 00056 return read(PWMCONF_register.address); 00057 } 00058 void TMC2208Stepper::PWMCONF(uint32_t input) { 00059 PWMCONF_register.sr = input; 00060 write(PWMCONF_register.address, PWMCONF_register.sr); 00061 } 00062 00063 void TMC2208Stepper::pwm_ofs ( uint8_t B ) { PWMCONF_register.pwm_ofs = B; write(PWMCONF_register.address, PWMCONF_register.sr); } 00064 void TMC2208Stepper::pwm_grad ( uint8_t B ) { PWMCONF_register.pwm_grad = B; write(PWMCONF_register.address, PWMCONF_register.sr); } 00065 void TMC2208Stepper::pwm_freq ( uint8_t B ) { PWMCONF_register.pwm_freq = B; write(PWMCONF_register.address, PWMCONF_register.sr); } 00066 void TMC2208Stepper::pwm_autoscale ( bool B ) { PWMCONF_register.pwm_autoscale = B; write(PWMCONF_register.address, PWMCONF_register.sr); } 00067 void TMC2208Stepper::pwm_autograd ( bool B ) { PWMCONF_register.pwm_autograd = B; write(PWMCONF_register.address, PWMCONF_register.sr); } 00068 void TMC2208Stepper::freewheel ( uint8_t B ) { PWMCONF_register.freewheel = B; write(PWMCONF_register.address, PWMCONF_register.sr); } 00069 void TMC2208Stepper::pwm_reg ( uint8_t B ) { PWMCONF_register.pwm_reg = B; write(PWMCONF_register.address, PWMCONF_register.sr); } 00070 void TMC2208Stepper::pwm_lim ( uint8_t B ) { PWMCONF_register.pwm_lim = B; write(PWMCONF_register.address, PWMCONF_register.sr); } 00071 00072 uint8_t TMC2208Stepper::pwm_ofs() { TMC2208_n::PWMCONF_t r{0}; r.sr = PWMCONF(); return r.pwm_ofs; } 00073 uint8_t TMC2208Stepper::pwm_grad() { TMC2208_n::PWMCONF_t r{0}; r.sr = PWMCONF(); return r.pwm_grad; } 00074 uint8_t TMC2208Stepper::pwm_freq() { TMC2208_n::PWMCONF_t r{0}; r.sr = PWMCONF(); return r.pwm_freq; } 00075 bool TMC2208Stepper::pwm_autoscale() { TMC2208_n::PWMCONF_t r{0}; r.sr = PWMCONF(); return r.pwm_autoscale; } 00076 bool TMC2208Stepper::pwm_autograd() { TMC2208_n::PWMCONF_t r{0}; r.sr = PWMCONF(); return r.pwm_autograd; } 00077 uint8_t TMC2208Stepper::freewheel() { TMC2208_n::PWMCONF_t r{0}; r.sr = PWMCONF(); return r.freewheel; } 00078 uint8_t TMC2208Stepper::pwm_reg() { TMC2208_n::PWMCONF_t r{0}; r.sr = PWMCONF(); return r.pwm_reg; } 00079 uint8_t TMC2208Stepper::pwm_lim() { TMC2208_n::PWMCONF_t r{0}; r.sr = PWMCONF(); return r.pwm_lim; } 00080
Generated on Wed Jul 13 2022 22:52:51 by
1.7.2