reverse motor and bug fixes

This commit is contained in:
Mats van Reenen 2020-05-28 15:56:06 +02:00
parent db801bdc25
commit 699cd62939

View File

@ -12,16 +12,16 @@
const uchar MD_CS = BIT3; const uchar MD_CS = BIT3;
// register 0x00 GCINF // register 0x00 GCINF
#define MD_GCONF 0X00 #define MD_GCONF 0x00
#define MD_GCONF_singgelMotor BIT00 #define MD_GCONF_singgelMotor BIT00
#define MD_GCONF_stepdir1Enable BIT01 #define MD_GCONF_stepdir1Enable BIT01
#define MD_GCONF_stepdir2Enable BIT02 #define MD_GCONF_stepdir2Enable BIT02
#define MD_GCONF_motor1Revers BIT08 #define MD_GCONF_motor1Revers BIT08
#define MD_GCONF_motor1Revers BIT09 #define MD_GCONF_motor2Revers BIT09
#define MD_GCONF_lockGCONF BIT10 #define MD_GCONF_lockGCONF BIT10
// register 0x01 GSTAT // register 0x01 GSTAT
#define MD_GSTAT 0X01 #define MD_GSTAT 0x01
#define MD_GSTAT_recet BIT00 #define MD_GSTAT_recet BIT00
#define MD_GSTAT_drv_err1 BIT01 #define MD_GSTAT_drv_err1 BIT01
#define MD_GSTAT_drv_err2 BIT02 #define MD_GSTAT_drv_err2 BIT02
@ -35,8 +35,8 @@ const uchar MD_CS = BIT3;
#define md_IHIR_iHoldDelay 16 // 4 #define md_IHIR_iHoldDelay 16 // 4
// register 0x6C, 7C CHOPCONF // register 0x6C, 7C CHOPCONF
#define MD_CC1 0X6C #define MD_CC1 0x6C
#define MD_CC2 0X7C #define MD_CC2 0x7C
#define MD_CC_shortProtection 0x40000000 #define MD_CC_shortProtection 0x40000000
#define MD_CC_doubbleEdge 0x20000000 #define MD_CC_doubbleEdge 0x20000000
#define MD_CC_16ustapI 0x10000000 #define MD_CC_16ustapI 0x10000000
@ -61,7 +61,7 @@ const uchar MD_CS = BIT3;
#define MD_CC_toff 0 // 4 bits #define MD_CC_toff 0 // 4 bits
enum bool MDStatus(){ enum bool MDStatus(){
unsigned long stat = MD_read(MD_GSTAT); ulong stat = MD_read(MD_GSTAT);
if(stat != 0){ if(stat != 0){
if(stat == 0x1){ // only a recet has occert if(stat == 0x1){ // only a recet has occert
// restart the motor driver // restart the motor driver
@ -96,7 +96,7 @@ void MD_write(uchar addr, ulong data) {
} }
unsigned long MD_read(uchar addr) { ulong MD_read(uchar addr) {
char i; char i;
ulong data; ulong data;
@ -130,9 +130,9 @@ void MDInit(){
MDStatus(); MDStatus();
MD_write(MD_GCONF, MD_GCONF_stepdir2Enable | MD_GCONF_stepdir1Enable); MD_write(MD_GCONF, MD_GCONF_stepdir2Enable | MD_GCONF_stepdir1Enable | MD_GCONF_motor2Revers);
MD_write(MD_CC1, 3ul<<MD_CC_toff | (4ul<<MD_CC_hstrt) | (1ul<<MD_CC_hend) | (2ul<<MD_CC_tbl) | MC_CC_FULLSTEP | MD_CC_16ustapI); MD_write(MD_CC1, 3ul<<MD_CC_toff | (4ul<<MD_CC_hstrt) | (1ul<<MD_CC_hend) | (2ul<<MD_CC_tbl) | MC_CC_16US | MD_CC_16ustapI);
MD_write(MD_CC2, 3ul<<MD_CC_toff | (4ul<<MD_CC_hstrt) | (1ul<<MD_CC_hend) | (2ul<<MD_CC_tbl) | MC_CC_FULLSTEP | MD_CC_16ustapI); MD_write(MD_CC2, 3ul<<MD_CC_toff | (4ul<<MD_CC_hstrt) | (1ul<<MD_CC_hend) | (2ul<<MD_CC_tbl) | MC_CC_16US | MD_CC_16ustapI);
MD_write(MD_IHIR1, 10ul<<MD_IHIR_iHold | 31ul<<MD_IHIR_iRun | 6ul<<md_IHIR_iHoldDelay); MD_write(MD_IHIR1, 10ul<<MD_IHIR_iHold | 31ul<<MD_IHIR_iRun | 6ul<<md_IHIR_iHoldDelay);
MD_write(MD_IHIR2, 10ul<<MD_IHIR_iHold | 31ul<<MD_IHIR_iRun | 6ul<<md_IHIR_iHoldDelay); MD_write(MD_IHIR2, 10ul<<MD_IHIR_iHold | 31ul<<MD_IHIR_iRun | 6ul<<md_IHIR_iHoldDelay);