]> rtime.felk.cvut.cz Git - fpga/rpi-motor-control.git/blob - pmsm-control/test_sw/cmd_proc.c
72260b5b9975b5269f4cfd1f85ef65a3fe937936
[fpga/rpi-motor-control.git] / pmsm-control / test_sw / cmd_proc.c
1 #include <stdlib.h>
2 #include <stdio.h>
3
4 #include "cmd_proc.h"
5
6
7 /**
8  * \brief
9  * Commands detection.
10  */
11 void poll_cmd(struct rpi_state* state){
12         unsigned int tmp;
13         /*
14          * Note:
15          * pri pouziti scanf("%u",&simple_hall_duty); dochazelo
16          * k preukladani hodnot na promenne test. Dost divne.
17          */
18         while (1){
19                 scanf("%u",&tmp);
20                 printf("volba=%u\n",tmp);
21                 switch (tmp){
22                 case 1:
23                         scanf("%u",&tmp);
24                         sem_wait(&state->thd_par_sem);
25                         state->pwm1=tmp&0xFFF;
26                         sem_post(&state->thd_par_sem);
27                         break;
28                 case 2:
29                         scanf("%u",&tmp);
30                         sem_wait(&state->thd_par_sem);
31                         state->pwm2=tmp&0xFFF;
32                         sem_post(&state->thd_par_sem);
33                         break;
34                 case 3:
35                         scanf("%u",&tmp);
36                         sem_wait(&state->thd_par_sem);
37                         state->pwm3=tmp&0xFFF;
38                         sem_post(&state->thd_par_sem);
39                         break;
40                 case 4:
41                         scanf("%u",&tmp);
42                         sem_wait(&state->thd_par_sem);
43                         state->test=tmp&0xFF;
44                         sem_post(&state->thd_par_sem);
45                         break;
46                 case 5:
47                         sem_wait(&state->thd_par_sem);
48                         state->commutate=!state->commutate;
49                         /* switch off pwms at the end of commutation */
50                         state->pwm1&=state->commutate*0xFFFF;
51                         state->pwm2&=state->commutate*0xFFFF;
52                         state->pwm3&=state->commutate*0xFFFF;
53                         sem_post(&state->thd_par_sem);
54                         break;
55                 case 6:
56                         scanf("%d",&tmp);
57                         sem_wait(&state->thd_par_sem);
58                         state->duty=tmp;
59                         sem_post(&state->thd_par_sem);
60                         break;
61                 case 7:
62                         scanf("%d",&tmp);
63                         sem_wait(&state->thd_par_sem);
64                         state->desired_pos=tmp;
65                         sem_post(&state->thd_par_sem);
66                         break;
67
68                 default:
69                         break;
70                 }
71
72         }
73         return ;
74 }