Пример #1
0
/* 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();
}
Пример #2
0
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();
}
Пример #3
0
void drv8711::init () 
{
    set_defaults();
    WriteAllRegisters();
 }