Library for Trinamic TMC2209 stepper modules to drive bipolar stepper motors. Ported and adapted from https://github.com/teemuatlut/TMCStepper

Dependents:   TMC2209-Test2

COOLCONF.cpp

Committer:
charly
Date:
2021-12-02
Revision:
2:b34e91b54373

File content as of revision 2:b34e91b54373:

#include "TMCStepper.h"
#include "TMC_MACROS.h"

#define SET_REG(SETTING) COOLCONF_register.SETTING = B; write(COOLCONF_register.address, COOLCONF_register.sr);
#define GET_REG(SETTING) return COOLCONF_register.SETTING;

// COOLCONF
/*
uint32_t TMC2130Stepper::COOLCONF() { return COOLCONF_register.sr; }
void TMC2130Stepper::COOLCONF(uint32_t input) {
    COOLCONF_register.sr = input;
    write(COOLCONF_register.address, COOLCONF_register.sr);
}

void TMC2130Stepper::semin( uint8_t B ) { SET_REG(semin);   }
void TMC2130Stepper::seup(  uint8_t B ) { SET_REG(seup);    }
void TMC2130Stepper::semax( uint8_t B ) { SET_REG(semax);   }
void TMC2130Stepper::sedn(  uint8_t B ) { SET_REG(sedn);    }
void TMC2130Stepper::seimin(bool    B ) { SET_REG(seimin);  }
void TMC2130Stepper::sgt(   int8_t  B ) { SET_REG(sgt);     }
void TMC2130Stepper::sfilt( bool    B ) { SET_REG(sfilt);   }

uint8_t TMC2130Stepper::semin() { GET_REG(semin);   }
uint8_t TMC2130Stepper::seup()  { GET_REG(seup);    }
uint8_t TMC2130Stepper::semax() { GET_REG(semax);   }
uint8_t TMC2130Stepper::sedn()  { GET_REG(sedn);    }
bool    TMC2130Stepper::seimin(){ GET_REG(seimin);  }
bool    TMC2130Stepper::sfilt() { GET_REG(sfilt);   }

int8_t TMC2130Stepper::sgt() {
    // Two's complement in a 7bit value
    int8_t val = (COOLCONF_register.sgt &  0x40) << 1; // Isolate sign bit
    val |= COOLCONF_register.sgt & 0x7F;
    return val;
}
*/

uint16_t TMC2209Stepper::COOLCONF() { return COOLCONF_register.sr; }
void TMC2209Stepper::COOLCONF(uint16_t input) {
    COOLCONF_register.sr = input;
    write(COOLCONF_register.address, COOLCONF_register.sr);
}

void TMC2209Stepper::semin( uint8_t B ) { SET_REG(semin);   }
void TMC2209Stepper::seup(  uint8_t B ) { SET_REG(seup);    }
void TMC2209Stepper::semax( uint8_t B ) { SET_REG(semax);   }
void TMC2209Stepper::sedn(  uint8_t B ) { SET_REG(sedn);    }
void TMC2209Stepper::seimin(bool    B ) { SET_REG(seimin);  }

uint8_t TMC2209Stepper::semin() { GET_REG(semin);   }
uint8_t TMC2209Stepper::seup()  { GET_REG(seup);    }
uint8_t TMC2209Stepper::semax() { GET_REG(semax);   }
uint8_t TMC2209Stepper::sedn()  { GET_REG(sedn);    }
bool    TMC2209Stepper::seimin(){ GET_REG(seimin);  }