X-Git-Url: https://rtime.felk.cvut.cz/gitweb/fpga/rpi-motor-control.git/blobdiff_plain/4ce508fb799a94fd7c98e04e02421138fe51c621..1a8d767b097d1536b264d8bae3e9d5c16617f835:/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 d5e3020..46ff070 100644 --- a/pmsm-control/test_sw/cmd_proc.c +++ b/pmsm-control/test_sw/cmd_proc.c @@ -20,6 +20,8 @@ static void printHelp(){ puts("0 - Vypne pwm a rizeni. Enable bity na nulu."); puts("ga:[hodnota] - Zapne rizeni na zvolenou absolutni pozici."); puts("print - Zapne nebo vypne pravidelne vypisovani hodnot."); + puts("duty:[hodnota] - Nastavi pevnou sirku plneni."); + puts("help - Vypne vypisovani hodnot a zobrazi tuto napovedu."); puts("exit - Bezpecne ukonci program."); } @@ -45,7 +47,6 @@ static void delCol(char * txt){ static void start(struct rpi_state* state){ sem_wait(&state->thd_par_sem); state->test=0x70; /*konfiguracni byte*/ - state->commutate=1; sem_post(&state->thd_par_sem); } @@ -57,6 +58,7 @@ 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; @@ -68,7 +70,13 @@ static void stop(struct rpi_state* state){ * Nastavi pevnou sirku plneni */ static void dutySet(struct rpi_state* state, int duty){ - + sem_wait(&state->thd_par_sem); + if (duty>512) duty=512; + if (duty<-512) duty=-512;/*paranoia*/ + state->duty=duty; + state->commutate=1; + state->pos_reg_ena=0; + sem_post(&state->thd_par_sem); } /* @@ -77,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->desired_pos=pos; sem_post(&state->thd_par_sem); }