X-Git-Url: https://rtime.felk.cvut.cz/gitweb/fpga/rpi-motor-control.git/blobdiff_plain/1a8d767b097d1536b264d8bae3e9d5c16617f835..9650ac29cdffe74d39e64da32a34384dcd9db72f:/pmsm-control/test_sw/cmd_proc.c diff --git a/pmsm-control/test_sw/cmd_proc.c b/pmsm-control/test_sw/cmd_proc.c index 46ff070..35ed9c2 100644 --- a/pmsm-control/test_sw/cmd_proc.c +++ b/pmsm-control/test_sw/cmd_proc.c @@ -16,8 +16,8 @@ static char doPrint = 1; static void printHelp(){ doPrint=0; puts("start - Pripravi rizeni, zapne enable bity pwm."); - puts("stop - Vypne pwm a rizeni. Enable bity na nulu."); - puts("0 - Vypne pwm a rizeni. Enable bity na nulu."); + puts("stop - Vypne komutaci, pwm a rizeni."); + puts("0 - Vypne komutaci, pwm a rizeni."); puts("ga:[hodnota] - Zapne rizeni na zvolenou absolutni pozici."); puts("print - Zapne nebo vypne pravidelne vypisovani hodnot."); puts("duty:[hodnota] - Nastavi pevnou sirku plneni."); @@ -58,7 +58,6 @@ static void stop(struct rpi_state* state){ sem_wait(&state->thd_par_sem); state->test=0; /*konfiguracni byte*/ state->commutate=0; - state->pos_reg_ena=0; state->pwm1=0; state->pwm2=0; state->pwm3=0; @@ -86,6 +85,7 @@ static void dutySet(struct rpi_state* state, int duty){ static void goAbsolute(struct rpi_state* state, int pos){ sem_wait(&state->thd_par_sem); state->pos_reg_ena=1; + state->commutate=1; state->desired_pos=pos; sem_post(&state->thd_par_sem); } @@ -168,12 +168,14 @@ void printData(struct rpi_state* state){ struct rpi_state s; /*state*/ float cur0, cur1, cur2; int i; + signed long int speed; /* copy the data */ sem_wait(&state->thd_par_sem); data_p = *state->spi_dat; s=*state; sem_post(&state->thd_par_sem); + speed=data_p.pozice-s.old_pos; if (data_p.adc_m_count){ cur0=data_p.ch0/data_p.adc_m_count; cur1=data_p.ch1/data_p.adc_m_count; @@ -185,7 +187,8 @@ void printData(struct rpi_state* state){ printf("%.2X ", data_p.debug_rx[i]); } puts(""); - printf("\npozice=%d\n",(int32_t)data_p.pozice); + printf("\npozice=%u\n",data_p.pozice); + printf("rychlost=%ld\n",speed); printf("chtena pozice=%d\n",s.desired_pos); printf("transfer count=%u\n",s.tf_count); printf("raw_pozice=%u\n",data_p.pozice_raw);