if(!str.empty()) {
rawreg= true;
std::vector<uint32_t> regs= parse_number_list(str.c_str(), 16);
- uint32_t reg= 0;
- for(auto i : regs) {
+ if(!regs.empty()) {
+ uint32_t reg= 0;
+ for(auto i : regs) {
+ // this just sets the local storage, it does not write to the chip
+ switch(chip) {
+ case DRV8711: drv8711->set_raw_register(&StreamOutput::NullStream, ++reg, i); break;
+ case TMC2660: tmc26x->setRawRegister(&StreamOutput::NullStream, ++reg, i); break;
+ }
+ }
+
+ // write the stored registers
switch(chip) {
- case DRV8711: drv8711->set_raw_register(&StreamOutput::NullStream, ++reg, i); break;
- case TMC2660: tmc26x->setRawRegister(&StreamOutput::NullStream, ++reg, i); break;
+ case DRV8711: drv8711->set_raw_register(&StreamOutput::NullStream, 255, 0); break;
+ case TMC2660: tmc26x->setRawRegister(&StreamOutput::NullStream, 255, 0); break;
}
}
+
}else{
rawreg= false;
}
}
// sets a raw register to the value specified, for advanced settings
-// register 0 writes them, 255 displays what registers are mapped to what
+// register 255 writes them, 0 displays what registers are mapped to what
// FIXME status registers not reading back correctly, check docs
bool TMC26X::setRawRegister(StreamOutput *stream, uint32_t reg, uint32_t val)
{