25#if __BYTE_ORDER__ != __ORDER_LITTLE_ENDIAN__
26 #error "TMCStepper does not currently support Big Endian targets!"
46 return (
float)(CS+1)/32.0 * (
vsense() ? 0.180 : 0.325)/(
Rsense+0.02) / 1.41421 * 1000;
50 uint8_t CS = 32.0*1.41421*mA/1000.0*(
Rsense+0.02)/0.325 - 1;
54 CS = 32.0*1.41421*mA/1000.0*(
Rsense+0.02)/0.180 - 1;
78 case 0xFFFFFFFF:
return 1;
92 case 256:
mres(0);
break;
93 case 128:
mres(1);
break;
94 case 64:
mres(2);
break;
95 case 32:
mres(3);
break;
96 case 16:
mres(4);
break;
97 case 8:
mres(5);
break;
98 case 4:
mres(6);
break;
99 case 2:
mres(7);
break;
100 case 0:
mres(8);
break;
122 case 16:
tbl(0b00);
break;
123 case 24:
tbl(0b01);
break;
124 case 36:
tbl(0b10);
break;
125 case 54:
tbl(0b11);
break;
131 case 0b00:
return 16;
132 case 0b01:
return 24;
133 case 0b10:
return 36;
134 case 0b11:
return 54;
150 TPOWERDOWN_register.sr = input;
151 write(TPOWERDOWN_register.address, TPOWERDOWN_register.sr);
160 TPWMTHRS_register.sr = input;
161 write(TPWMTHRS_register.address, TPWMTHRS_register.sr);
virtual void write(uint8_t, uint32_t)=0
virtual uint32_t read(uint8_t)=0
virtual uint32_t DRV_STATUS()=0
virtual bool vsense(void)=0
uint8_t hysteresis_start()
virtual uint8_t hstrt()=0
uint16_t cs2rms(uint8_t CS)
uint8_t test_connection()
static constexpr uint8_t address
static constexpr uint8_t address
static constexpr uint8_t address