TMCStepper
Library supporting Trinamic Stepper Drivers for Arduino platforms
Loading...
Searching...
No Matches
DRVSTATUS.cpp
Go to the documentation of this file.
1
6#include "../TMCStepper.h"
7#include "TMC_MACROS.h"
8
9#define GET_REG00(SETTING) DRVSTATUS(); return READ_RDSEL00_register.SETTING
10#define GET_REG01(SETTING) DRVSTATUS(); return READ_RDSEL01_register.SETTING
11#define GET_REG10(SETTING) DRVSTATUS(); return READ_RDSEL10_register.SETTING
12
14 uint32_t response = read()&0xFFCFF;
15 READ_RDSEL00_register.sr = response & 0xFF;
16 READ_RDSEL01_register.sr = response & 0xFF;
17 READ_RDSEL10_register.sr = response & 0xFF;
18 switch(rdsel()) {
19 case 0b00: READ_RDSEL00_register.sr |= response & 0xFFC00; break;
20 case 0b01: READ_RDSEL01_register.sr |= response & 0xFFC00; break;
21 case 0b10: READ_RDSEL10_register.sr |= response & 0xFFC00; break;
22 default: return 0;
23 }
24 return response;
25}
26
27uint16_t TMC2660Stepper::mstep() { if(rdsel() != 0b00) rdsel(0b00); GET_REG00(mstep); }
28uint8_t TMC2660Stepper::se() { if(rdsel() != 0b10) rdsel(0b10); GET_REG10(se); }
36bool TMC2660Stepper::sg() { GET_REG00(sg_value); }
37
39 uint16_t out = 0;
40 if (rdsel() == 0b00) rdsel(0b01);
41 DRVSTATUS();
42 switch(rdsel()) {
43 case 0b01: out = READ_RDSEL01_register.sg_result; break;
44 case 0b10: out = READ_RDSEL10_register.sg_result; break;
45 default: break;
46 }
47 return out;
48}
#define GET_REG10(SETTING)
Definition DRVSTATUS.cpp:11
#define GET_REG00(SETTING)
Definition DRVSTATUS.cpp:9
uint32_t DRVSTATUS()
Definition DRVSTATUS.cpp:13
uint8_t rdsel()
Definition DRVCONF.cpp:34
uint16_t sg_result()
Definition DRVSTATUS.cpp:38
uint16_t mstep()
Definition DRVSTATUS.cpp:27
uint8_t se()
Definition DRVSTATUS.cpp:28