Subversion Repositories shark

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1624 giacomo 1
/*
2
 * Project: S.Ha.R.K.
3
 *
4
 * Coordinators: Giorgio Buttazzo <giorgio@sssup.it>
5
 *
6
 *
7
 * ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy)
8
 *
9
 * http://www.sssup.it
10
 * http://retis.sssup.it
11
 * http://shark.sssup.it
12
 */
13
 
14
#include "chimera.h"
15
 
16
unsigned char   active_leg;
17
 
18
extern volatile int calibrate_status;
19
 
20
void pad(KEY_EVT *k)
21
{
22
        switch (k->scan) {
23
                case KEY_Z:
24
                        status.power ^= 1;
25
                        break;
26
 
27
                case KEY_Q:
28
                        status.cfg[active_leg].pwm ^= 0x1;
29
                        break;
30
                case KEY_W:
31
                        status.cfg[active_leg].pwm ^= 0x2;
32
                        break;
33
                case KEY_E:
34
                        status.cfg[active_leg].pwm ^= 0x4;
35
                        break;
36
                case KEY_1:
37
                        active_leg = 0;
38
                        break;
39
                case KEY_2:
40
                        active_leg = 1;
41
                        break;
42
                case KEY_3:
43
                        active_leg = 2;
44
                        break;
45
                case KEY_4:
46
                        active_leg = 3;
47
                        break;
48
                case KEY_5:
49
                        active_leg = 4;
50
                        break;
51
                case KEY_6:
52
                        active_leg = 5;
53
                        break;
54
 
55
                case KEY_C:
56
                        if (calibrate_status != 0) calibrate_step(100000);
57
                                else calibrate_init();
58
                        break;
59
 
60
                case KEY_A:
61
                        calibrate_step(-108000);
62
                        break;
63
                case KEY_S:
64
                        calibrate_step(-3600);
65
                        break;
66
                case KEY_D:
67
                        calibrate_step(-60);
68
                        break;
69
                case KEY_F:
70
                        calibrate_step(+60);
71
                        break;
72
                case KEY_G:
73
                        calibrate_step(+3600);
74
                        break;
75
                case KEY_H:
76
                        calibrate_step(+108000);
77
                        break;
78
        }
79
}
80
 
81
void init_key()
82
{
83
        KEY_EVT k;
84
 
85
        k.flag = 0;
86
        k.scan = KEY_1;
87
        k.ascii = '1';
88
        keyb_hook(k,pad);
89
 
90
        k.flag = 0;
91
        k.scan = KEY_2;
92
        k.ascii = '2';
93
        keyb_hook(k,pad);
94
 
95
        k.flag = 0;
96
        k.scan = KEY_3;
97
        k.ascii = '3';
98
        keyb_hook(k,pad);
99
 
100
        k.flag = 0;
101
        k.scan = KEY_4;
102
        k.ascii = '4';
103
        keyb_hook(k,pad);
104
 
105
        k.flag = 0;
106
        k.scan = KEY_5;
107
        k.ascii = '5';
108
        keyb_hook(k,pad);
109
 
110
        k.flag = 0;
111
        k.scan = KEY_6;
112
        k.ascii = '6';
113
        keyb_hook(k,pad);
114
 
115
        k.flag = 0;
116
        k.scan = KEY_J;
117
        k.ascii = 'j';
118
        keyb_hook(k,pad);
119
 
120
        k.flag = 0;
121
        k.scan = KEY_K;
122
        k.ascii = 'k';
123
        keyb_hook(k,pad);
124
 
125
        k.flag = 0;
126
        k.scan = KEY_L;
127
        k.ascii = 'l';
128
        keyb_hook(k,pad);
129
 
130
        k.flag = 0;
131
        k.scan = KEY_U;
132
        k.ascii = 'u';
133
        keyb_hook(k,pad);
134
 
135
        k.flag = 0;
136
        k.scan = KEY_I;
137
        k.ascii = 'i';
138
        keyb_hook(k,pad);
139
 
140
        k.flag = 0;
141
        k.scan = KEY_O;
142
        k.ascii = 'o';
143
        keyb_hook(k,pad);
144
 
145
        k.flag = 0;
146
        k.scan = KEY_Q;
147
        k.ascii = 'q';
148
        keyb_hook(k,pad);
149
 
150
        k.flag = 0;
151
        k.scan = KEY_W;
152
        k.ascii = 'w';
153
        keyb_hook(k,pad);
154
 
155
        k.flag = 0;
156
        k.scan = KEY_E;
157
        k.ascii = 'e';
158
        keyb_hook(k,pad);
159
 
160
        k.flag = 0;
161
        k.scan = KEY_Z;
162
        k.ascii = 'z';
163
        keyb_hook(k,pad);
164
 
165
 
166
        k.flag = 0;
167
        k.scan = KEY_C;
168
        k.ascii = 'c';
169
        keyb_hook(k,pad);
170
 
171
        k.flag = 0;
172
        k.scan = KEY_A;
173
        k.ascii = 'a';
174
        keyb_hook(k,pad);
175
 
176
        k.flag = 0;
177
        k.scan = KEY_S;
178
        k.ascii = 's';
179
        keyb_hook(k,pad);
180
 
181
        k.flag = 0;
182
        k.scan = KEY_D;
183
        k.ascii = 'd';
184
        keyb_hook(k,pad);
185
 
186
        k.flag = 0;
187
        k.scan = KEY_F;
188
        k.ascii = 'f';
189
        keyb_hook(k,pad);
190
 
191
        k.flag = 0;
192
        k.scan = KEY_G;
193
        k.ascii = 'g';
194
        keyb_hook(k,pad);
195
 
196
        k.flag = 0;
197
        k.scan = KEY_H;
198
        k.ascii = 'h';
199
        keyb_hook(k,pad);
200
}