/* on initialise toutes les valeurs des registres par defaut*/ void drv_init(){ // Set Default Register Settings // CTRL Register G_CTRL_REG.Address = 0x00;//adresse du registre G_CTRL_REG.DTIME = 0x03; G_CTRL_REG.ISGAIN = 0x03;//40 current max 1.36A G_CTRL_REG.EXSTALL = 0x00; G_CTRL_REG.MODE = 0x03; G_CTRL_REG.RSTEP = 0x00; G_CTRL_REG.RDIR = 0x00; G_CTRL_REG.ENBL = 0x01;//motor enable // TORQUE Register G_TORQUE_REG.Address = 0x01; G_TORQUE_REG.SIMPLTH = 0x00; G_TORQUE_REG.TORQUE = 0xBA; // OFF Register G_OFF_REG.Address = 0x02; G_OFF_REG.PWMMODE = 0x00; G_OFF_REG.TOFF = 0x30; // BLANK Register G_BLANK_REG.Address = 0x03; G_BLANK_REG.ABT = 0x01; G_BLANK_REG.TBLANK = 0x08; // DECAY Register. G_DECAY_REG.Address = 0x04; G_DECAY_REG.DECMOD = 0x03; G_DECAY_REG.TDECAY = 0x10; // STALL Register G_STALL_REG.Address = 0x05; G_STALL_REG.VDIV = 0x03; G_STALL_REG.SDCNT = 0x03; G_STALL_REG.SDTHR = 0x40; // DRIVE Register G_DRIVE_REG.Address = 0x06; G_DRIVE_REG.IDRIVEP = 0x00; G_DRIVE_REG.IDRIVEN = 0x00; G_DRIVE_REG.TDRIVEP = 0x01; G_DRIVE_REG.TDRIVEN = 0x01; G_DRIVE_REG.OCPDEG = 0x01; G_DRIVE_REG.OCPTH = 0x01; // STATUS Register G_STATUS_REG.Address = 0x07; G_STATUS_REG.STDLAT = 0x00; G_STATUS_REG.STD = 0x00; G_STATUS_REG.UVLO = 0x00; G_STATUS_REG.BPDF = 0x00; G_STATUS_REG.APDF = 0x00; G_STATUS_REG.BOCP = 0x00; G_STATUS_REG.AOCP = 0x00; G_STATUS_REG.OTS = 0x00; WriteAllRegisters(); }
void updateStep(){ if(!(P1IN & BIT0)){ G_CTRL_REG.MODE = 0x04;//1/16 step } if(!(P1IN & BIT1)){ G_CTRL_REG.MODE = 0x06;//1/64 step } if(!(P1IN & BIT2)){ G_CTRL_REG.MODE = 0x07;//1/128 step } if(!(P1IN & BIT3)){ G_CTRL_REG.MODE = 0x00;//full step } WriteAllRegisters(); }
void drv8711::init () { set_defaults(); WriteAllRegisters(); }