diff --git a/F3:F303/Multistepper/commonproto.c b/F3:F303/Multistepper/commonproto.c index 169c51c..562dfae 100644 --- a/F3:F303/Multistepper/commonproto.c +++ b/F3:F303/Multistepper/commonproto.c @@ -236,6 +236,7 @@ errcodes cu_mcuvdd(uint8_t par, int32_t *val){ errcodes cu_microsteps(uint8_t _U_ par, int32_t _U_ *val){ uint8_t n; CHECKN(n, par); + USB_sendstr("===> val="); printi(*val); newline(); if(ISSETTER(par)){ #if MICROSTEPSMAX > 512 #error "Change the code anywhere!" @@ -270,7 +271,7 @@ errcodes cu_minspeed(uint8_t _U_ par, int32_t _U_ *val){ errcodes cu_motcurrent(uint8_t par, int32_t *val){ uint8_t n; CHECKN(n, par); if(ISSETTER(par)){ - if(*val < 1 || *val > 32) return ERR_BADVAL; + if(*val < 0 || *val > 31) return ERR_BADVAL; the_conf.motcurrent[n] = *val; motflags_t *f = the_conf.motflags; if(f->drvtype == DRVTYPE_UART){ diff --git a/F3:F303/Multistepper/main.c b/F3:F303/Multistepper/main.c index 86aaa0c..6fa117f 100644 --- a/F3:F303/Multistepper/main.c +++ b/F3:F303/Multistepper/main.c @@ -51,10 +51,6 @@ int main(void){ adc_setup(); pdnuart_setup(); USBPU_ON(); - for(int i = 0; i < MOTORSNO; ++i){ - motflags_t flag = the_conf.motflags[i]; - if(flag.drvtype == DRVTYPE_UART) pdnuart_init(i); - } uint32_t ctr = 0; CAN_message *can_mesg; while(1){ diff --git a/F3:F303/Multistepper/multistepper.bin b/F3:F303/Multistepper/multistepper.bin index 0fc5ae4..5ed070a 100755 Binary files a/F3:F303/Multistepper/multistepper.bin and b/F3:F303/Multistepper/multistepper.bin differ diff --git a/F3:F303/Multistepper/pdnuart.c b/F3:F303/Multistepper/pdnuart.c index e510f9e..c1e5686 100644 --- a/F3:F303/Multistepper/pdnuart.c +++ b/F3:F303/Multistepper/pdnuart.c @@ -120,8 +120,8 @@ int pdnuart_readreg(uint8_t reg, uint32_t *data){ } uint32_t o = 0; for(int i = 3; i < 7; ++i){ - o |= buf[i]; o <<= 8; + o |= buf[i]; } *data = o; return TRUE; @@ -165,7 +165,7 @@ int pdnuart_microsteps(uint8_t no, uint32_t val){ TMC2209_chopconf_reg_t regval; if(!readregister(no, TMC2209Reg_CHOPCONF, ®val.value)) return FALSE; if(val == 256) regval.mres = 0; - else regval.mres = MSB(val) + 1; + else regval.mres = 8 - MSB(val); return writeregister(no, TMC2209Reg_CHOPCONF, regval.value); } diff --git a/F3:F303/Multistepper/steppers.c b/F3:F303/Multistepper/steppers.c index 53a9487..da82221 100644 --- a/F3:F303/Multistepper/steppers.c +++ b/F3:F303/Multistepper/steppers.c @@ -18,6 +18,7 @@ #include "flash.h" #include "hardware.h" +#include "pdnuart.h" #include "proto.h" #include "steppers.h" #include "strfunc.h" @@ -82,6 +83,13 @@ void update_stepper(uint8_t i){ accdecsteps[i] = (the_conf.maxspd[i] * the_conf.maxspd[i]) / the_conf.accel[i] / 2; ustepsshift[i] = MSB(the_conf.microsteps[i]); ESW_reaction[i] = the_conf.ESW_reaction[i]; + switch(the_conf.motflags[i].drvtype){ + case DRVTYPE_UART: + pdnuart_init(i); + break; + default: + break; + } } // run this function after each steppers parameters changing diff --git a/F3:F303/Multistepper/version.inc b/F3:F303/Multistepper/version.inc index 29c91ef..79833d0 100644 --- a/F3:F303/Multistepper/version.inc +++ b/F3:F303/Multistepper/version.inc @@ -1,2 +1,2 @@ -#define BUILD_NUMBER "95" -#define BUILD_DATE "2023-03-01" +#define BUILD_NUMBER "104" +#define BUILD_DATE "2023-03-02"