Library for Trinamic TMC2209 stepper modules to drive bipolar stepper motors. Ported and adapted from https://github.com/teemuatlut/TMCStepper
TMC2209Stepper.cpp
00001 #include "TMCStepper.h" 00002 00003 uint32_t TMC2209Stepper::IOIN() { 00004 return read(TMC2209_n::IOIN_t::address); 00005 } 00006 bool TMC2209Stepper::enn() { TMC2209_n::IOIN_t r{0}; r.sr = IOIN(); return r.enn; } 00007 bool TMC2209Stepper::ms1() { TMC2209_n::IOIN_t r{0}; r.sr = IOIN(); return r.ms1; } 00008 bool TMC2209Stepper::ms2() { TMC2209_n::IOIN_t r{0}; r.sr = IOIN(); return r.ms2; } 00009 bool TMC2209Stepper::diag() { TMC2209_n::IOIN_t r{0}; r.sr = IOIN(); return r.diag; } 00010 bool TMC2209Stepper::pdn_uart() { TMC2209_n::IOIN_t r{0}; r.sr = IOIN(); return r.pdn_uart; } 00011 bool TMC2209Stepper::step() { TMC2209_n::IOIN_t r{0}; r.sr = IOIN(); return r.step; } 00012 bool TMC2209Stepper::spread_en() { TMC2209_n::IOIN_t r{0}; r.sr = IOIN(); return r.spread_en;} 00013 bool TMC2209Stepper::dir() { TMC2209_n::IOIN_t r{0}; r.sr = IOIN(); return r.dir; } 00014 uint8_t TMC2209Stepper::version() { TMC2209_n::IOIN_t r{0}; r.sr = IOIN(); return r.version; } 00015 00016 void TMC2209Stepper::push() { 00017 IHOLD_IRUN(IHOLD_IRUN_register.sr); 00018 TPOWERDOWN(TPOWERDOWN_register.sr); 00019 TPWMTHRS(TPWMTHRS_register.sr); 00020 GCONF(GCONF_register.sr); 00021 SLAVECONF(SLAVECONF_register.sr); 00022 VACTUAL(VACTUAL_register.sr); 00023 CHOPCONF(CHOPCONF_register.sr); 00024 PWMCONF(PWMCONF_register.sr); 00025 TCOOLTHRS(TCOOLTHRS_register.sr); 00026 SGTHRS(SGTHRS_register.sr); 00027 COOLCONF(COOLCONF_register.sr); 00028 } 00029 00030 void TMC2209Stepper::SGTHRS(uint8_t input) { 00031 SGTHRS_register.sr = input; 00032 write(SGTHRS_register.address, SGTHRS_register.sr); 00033 } 00034 uint8_t TMC2209Stepper::SGTHRS() { 00035 return SGTHRS_register.sr; 00036 } 00037 00038 // W: TCOOLTHRS 00039 uint32_t TMC2209Stepper::TCOOLTHRS() { return TCOOLTHRS_register.sr; } 00040 void TMC2209Stepper::TCOOLTHRS(uint32_t input) { 00041 TCOOLTHRS_register.sr = input; 00042 write(TCOOLTHRS_register.address, TCOOLTHRS_register.sr); 00043 } 00044 00045 uint16_t TMC2209Stepper::SG_RESULT() { 00046 return read(TMC2209_n::SG_RESULT_t::address); 00047 }
Generated on Wed Jul 13 2022 22:52:51 by
1.7.2