Library for Trinamic TMC2209 stepper modules to drive bipolar stepper motors. Ported and adapted from https://github.com/teemuatlut/TMCStepper
PWMCONF.cpp@2:b34e91b54373, 2021-12-02 (annotated)
- Committer:
- charly
- Date:
- Thu Dec 02 20:29:39 2021 +0000
- Revision:
- 2:b34e91b54373
- Parent:
- 0:f4343071c8b1
Changes from Original Project for TMC2209 integrated
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
charly | 0:f4343071c8b1 | 1 | #include "TMCStepper.h" |
charly | 0:f4343071c8b1 | 2 | #include "TMC_MACROS.h" |
charly | 0:f4343071c8b1 | 3 | |
charly | 0:f4343071c8b1 | 4 | #define SET_REG(SETTING) PWMCONF_register.SETTING = B; write(PWMCONF_register.address, PWMCONF_register.sr) |
charly | 0:f4343071c8b1 | 5 | #define GET_REG(SETTING) return PWMCONF_register.SETTING |
charly | 0:f4343071c8b1 | 6 | |
charly | 0:f4343071c8b1 | 7 | // PWMCONF |
charly | 0:f4343071c8b1 | 8 | /* |
charly | 0:f4343071c8b1 | 9 | uint32_t TMC2130Stepper::PWMCONF() { return PWMCONF_register.sr; } |
charly | 0:f4343071c8b1 | 10 | void TMC2130Stepper::PWMCONF(uint32_t input) { |
charly | 0:f4343071c8b1 | 11 | PWMCONF_register.sr = input; |
charly | 0:f4343071c8b1 | 12 | write(PWMCONF_register.address, PWMCONF_register.sr); |
charly | 0:f4343071c8b1 | 13 | } |
charly | 0:f4343071c8b1 | 14 | |
charly | 0:f4343071c8b1 | 15 | void TMC2130Stepper::pwm_ampl( uint8_t B ) { SET_REG(pwm_ampl); } |
charly | 0:f4343071c8b1 | 16 | void TMC2130Stepper::pwm_grad( uint8_t B ) { SET_REG(pwm_grad); } |
charly | 0:f4343071c8b1 | 17 | void TMC2130Stepper::pwm_freq( uint8_t B ) { SET_REG(pwm_freq); } |
charly | 0:f4343071c8b1 | 18 | void TMC2130Stepper::pwm_autoscale( bool B ) { SET_REG(pwm_autoscale); } |
charly | 0:f4343071c8b1 | 19 | void TMC2130Stepper::pwm_symmetric( bool B ) { SET_REG(pwm_symmetric); } |
charly | 0:f4343071c8b1 | 20 | void TMC2130Stepper::freewheel( uint8_t B ) { SET_REG(freewheel); } |
charly | 0:f4343071c8b1 | 21 | |
charly | 0:f4343071c8b1 | 22 | uint8_t TMC2130Stepper::pwm_ampl() { GET_REG(pwm_ampl); } |
charly | 0:f4343071c8b1 | 23 | uint8_t TMC2130Stepper::pwm_grad() { GET_REG(pwm_grad); } |
charly | 0:f4343071c8b1 | 24 | uint8_t TMC2130Stepper::pwm_freq() { GET_REG(pwm_freq); } |
charly | 0:f4343071c8b1 | 25 | bool TMC2130Stepper::pwm_autoscale() { GET_REG(pwm_autoscale); } |
charly | 0:f4343071c8b1 | 26 | bool TMC2130Stepper::pwm_symmetric() { GET_REG(pwm_symmetric); } |
charly | 0:f4343071c8b1 | 27 | uint8_t TMC2130Stepper::freewheel() { GET_REG(freewheel); } |
charly | 0:f4343071c8b1 | 28 | |
charly | 0:f4343071c8b1 | 29 | uint32_t TMC2160Stepper::PWMCONF() { |
charly | 0:f4343071c8b1 | 30 | return PWMCONF_register.sr; |
charly | 0:f4343071c8b1 | 31 | } |
charly | 0:f4343071c8b1 | 32 | void TMC2160Stepper::PWMCONF(uint32_t input) { |
charly | 0:f4343071c8b1 | 33 | PWMCONF_register.sr = input; |
charly | 0:f4343071c8b1 | 34 | write(PWMCONF_register.address, PWMCONF_register.sr); |
charly | 0:f4343071c8b1 | 35 | } |
charly | 0:f4343071c8b1 | 36 | |
charly | 0:f4343071c8b1 | 37 | void TMC2160Stepper::pwm_ofs ( uint8_t B ) { PWMCONF_register.pwm_ofs = B; write(PWMCONF_register.address, PWMCONF_register.sr); } |
charly | 0:f4343071c8b1 | 38 | void TMC2160Stepper::pwm_grad ( uint8_t B ) { PWMCONF_register.pwm_grad = B; write(PWMCONF_register.address, PWMCONF_register.sr); } |
charly | 0:f4343071c8b1 | 39 | void TMC2160Stepper::pwm_freq ( uint8_t B ) { PWMCONF_register.pwm_freq = B; write(PWMCONF_register.address, PWMCONF_register.sr); } |
charly | 0:f4343071c8b1 | 40 | void TMC2160Stepper::pwm_autoscale ( bool B ) { PWMCONF_register.pwm_autoscale = B; write(PWMCONF_register.address, PWMCONF_register.sr); } |
charly | 0:f4343071c8b1 | 41 | void TMC2160Stepper::pwm_autograd ( bool B ) { PWMCONF_register.pwm_autograd = B; write(PWMCONF_register.address, PWMCONF_register.sr); } |
charly | 0:f4343071c8b1 | 42 | void TMC2160Stepper::freewheel ( uint8_t B ) { PWMCONF_register.freewheel = B; write(PWMCONF_register.address, PWMCONF_register.sr); } |
charly | 0:f4343071c8b1 | 43 | void TMC2160Stepper::pwm_reg ( uint8_t B ) { PWMCONF_register.pwm_reg = B; write(PWMCONF_register.address, PWMCONF_register.sr); } |
charly | 0:f4343071c8b1 | 44 | void TMC2160Stepper::pwm_lim ( uint8_t B ) { PWMCONF_register.pwm_lim = B; write(PWMCONF_register.address, PWMCONF_register.sr); } |
charly | 0:f4343071c8b1 | 45 | |
charly | 0:f4343071c8b1 | 46 | uint8_t TMC2160Stepper::pwm_ofs() { return PWMCONF_register.pwm_ofs; } |
charly | 0:f4343071c8b1 | 47 | uint8_t TMC2160Stepper::pwm_grad() { return PWMCONF_register.pwm_grad; } |
charly | 0:f4343071c8b1 | 48 | uint8_t TMC2160Stepper::pwm_freq() { return PWMCONF_register.pwm_freq; } |
charly | 0:f4343071c8b1 | 49 | bool TMC2160Stepper::pwm_autoscale() { return PWMCONF_register.pwm_autoscale;} |
charly | 0:f4343071c8b1 | 50 | bool TMC2160Stepper::pwm_autograd() { return PWMCONF_register.pwm_autograd; } |
charly | 0:f4343071c8b1 | 51 | uint8_t TMC2160Stepper::freewheel() { return PWMCONF_register.freewheel; } |
charly | 0:f4343071c8b1 | 52 | uint8_t TMC2160Stepper::pwm_reg() { return PWMCONF_register.pwm_reg; } |
charly | 0:f4343071c8b1 | 53 | uint8_t TMC2160Stepper::pwm_lim() { return PWMCONF_register.pwm_lim; } |
charly | 0:f4343071c8b1 | 54 | */ |
charly | 0:f4343071c8b1 | 55 | uint32_t TMC2208Stepper::PWMCONF() { |
charly | 0:f4343071c8b1 | 56 | return read(PWMCONF_register.address); |
charly | 0:f4343071c8b1 | 57 | } |
charly | 0:f4343071c8b1 | 58 | void TMC2208Stepper::PWMCONF(uint32_t input) { |
charly | 0:f4343071c8b1 | 59 | PWMCONF_register.sr = input; |
charly | 0:f4343071c8b1 | 60 | write(PWMCONF_register.address, PWMCONF_register.sr); |
charly | 0:f4343071c8b1 | 61 | } |
charly | 0:f4343071c8b1 | 62 | |
charly | 0:f4343071c8b1 | 63 | void TMC2208Stepper::pwm_ofs ( uint8_t B ) { PWMCONF_register.pwm_ofs = B; write(PWMCONF_register.address, PWMCONF_register.sr); } |
charly | 0:f4343071c8b1 | 64 | void TMC2208Stepper::pwm_grad ( uint8_t B ) { PWMCONF_register.pwm_grad = B; write(PWMCONF_register.address, PWMCONF_register.sr); } |
charly | 0:f4343071c8b1 | 65 | void TMC2208Stepper::pwm_freq ( uint8_t B ) { PWMCONF_register.pwm_freq = B; write(PWMCONF_register.address, PWMCONF_register.sr); } |
charly | 0:f4343071c8b1 | 66 | void TMC2208Stepper::pwm_autoscale ( bool B ) { PWMCONF_register.pwm_autoscale = B; write(PWMCONF_register.address, PWMCONF_register.sr); } |
charly | 0:f4343071c8b1 | 67 | void TMC2208Stepper::pwm_autograd ( bool B ) { PWMCONF_register.pwm_autograd = B; write(PWMCONF_register.address, PWMCONF_register.sr); } |
charly | 0:f4343071c8b1 | 68 | void TMC2208Stepper::freewheel ( uint8_t B ) { PWMCONF_register.freewheel = B; write(PWMCONF_register.address, PWMCONF_register.sr); } |
charly | 0:f4343071c8b1 | 69 | void TMC2208Stepper::pwm_reg ( uint8_t B ) { PWMCONF_register.pwm_reg = B; write(PWMCONF_register.address, PWMCONF_register.sr); } |
charly | 0:f4343071c8b1 | 70 | void TMC2208Stepper::pwm_lim ( uint8_t B ) { PWMCONF_register.pwm_lim = B; write(PWMCONF_register.address, PWMCONF_register.sr); } |
charly | 0:f4343071c8b1 | 71 | |
charly | 0:f4343071c8b1 | 72 | uint8_t TMC2208Stepper::pwm_ofs() { TMC2208_n::PWMCONF_t r{0}; r.sr = PWMCONF(); return r.pwm_ofs; } |
charly | 0:f4343071c8b1 | 73 | uint8_t TMC2208Stepper::pwm_grad() { TMC2208_n::PWMCONF_t r{0}; r.sr = PWMCONF(); return r.pwm_grad; } |
charly | 0:f4343071c8b1 | 74 | uint8_t TMC2208Stepper::pwm_freq() { TMC2208_n::PWMCONF_t r{0}; r.sr = PWMCONF(); return r.pwm_freq; } |
charly | 0:f4343071c8b1 | 75 | bool TMC2208Stepper::pwm_autoscale() { TMC2208_n::PWMCONF_t r{0}; r.sr = PWMCONF(); return r.pwm_autoscale; } |
charly | 0:f4343071c8b1 | 76 | bool TMC2208Stepper::pwm_autograd() { TMC2208_n::PWMCONF_t r{0}; r.sr = PWMCONF(); return r.pwm_autograd; } |
charly | 0:f4343071c8b1 | 77 | uint8_t TMC2208Stepper::freewheel() { TMC2208_n::PWMCONF_t r{0}; r.sr = PWMCONF(); return r.freewheel; } |
charly | 0:f4343071c8b1 | 78 | uint8_t TMC2208Stepper::pwm_reg() { TMC2208_n::PWMCONF_t r{0}; r.sr = PWMCONF(); return r.pwm_reg; } |
charly | 0:f4343071c8b1 | 79 | uint8_t TMC2208Stepper::pwm_lim() { TMC2208_n::PWMCONF_t r{0}; r.sr = PWMCONF(); return r.pwm_lim; } |
charly | 0:f4343071c8b1 | 80 |