Subversion Repositories shark

Rev

Rev 1336 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1331 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
 
1336 giacomo 18
extern volatile int calibrate_status;
19
 
1331 giacomo 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:
1334 giacomo 28
                        status.cfg[active_leg].pwm ^= 0x1;
1331 giacomo 29
                        break;
30
                case KEY_W:
1334 giacomo 31
                        status.cfg[active_leg].pwm ^= 0x2;
1331 giacomo 32
                        break;
33
                case KEY_E:
1334 giacomo 34
                        status.cfg[active_leg].pwm ^= 0x4;
1331 giacomo 35
                        break;
1359 giacomo 36
                case KEY_1:
37
                        active_leg = 0;
38
                        break;
1331 giacomo 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:
1335 giacomo 52
                        active_leg = 5;
1331 giacomo 53
                        break;
1336 giacomo 54
 
1332 giacomo 55
                case KEY_C:
1359 giacomo 56
                        if (calibrate_status != 0) calibrate_step(100000);
57
                                else calibrate_init();
1332 giacomo 58
                        break;
59
 
60
                case KEY_A:
1333 giacomo 61
                        calibrate_step(-108000);
1332 giacomo 62
                        break;
63
                case KEY_S:
1333 giacomo 64
                        calibrate_step(-3600);
1332 giacomo 65
                        break;
66
                case KEY_D:
1333 giacomo 67
                        calibrate_step(-60);
1332 giacomo 68
                        break;
69
                case KEY_F:
1333 giacomo 70
                        calibrate_step(+60);
1332 giacomo 71
                        break;
72
                case KEY_G:
1333 giacomo 73
                        calibrate_step(+3600);
1332 giacomo 74
                        break;
75
                case KEY_H:
1333 giacomo 76
                        calibrate_step(+108000);
1332 giacomo 77
                        break;
1331 giacomo 78
        }
79
}
80
 
81
void init_key()
82
{
83
        KEY_EVT k;
84
 
85
        /* Leg Selector */
86
        k.flag = 0;
87
        k.scan = KEY_1;
88
        k.ascii = '1';
1359 giacomo 89
        k.status = KEY_PRESSED;
90
        keyb_hook(k,pad,FALSE);
1331 giacomo 91
 
92
        k.flag = 0;
93
        k.scan = KEY_2;
94
        k.ascii = '2';
1359 giacomo 95
        k.status = KEY_PRESSED;
96
        keyb_hook(k,pad,FALSE);
1331 giacomo 97
 
98
        k.flag = 0;
99
        k.scan = KEY_3;
100
        k.ascii = '3';
1359 giacomo 101
        k.status = KEY_PRESSED;
102
        keyb_hook(k,pad,FALSE);
1331 giacomo 103
 
104
        k.flag = 0;
105
        k.scan = KEY_4;
106
        k.ascii = '4';
1359 giacomo 107
        k.status = KEY_PRESSED;
108
        keyb_hook(k,pad,FALSE);
1331 giacomo 109
 
110
        k.flag = 0;
111
        k.scan = KEY_5;
112
        k.ascii = '5';
1359 giacomo 113
        k.status = KEY_PRESSED;
114
        keyb_hook(k,pad,FALSE);
1331 giacomo 115
 
116
        k.flag = 0;
117
        k.scan = KEY_6;
118
        k.ascii = '6';
1359 giacomo 119
        k.status = KEY_PRESSED;
120
        keyb_hook(k,pad,FALSE);
1331 giacomo 121
 
122
        /* Leg Position */
123
        k.flag = 0;
124
        k.scan = KEY_J;
125
        k.ascii = 'j';
1359 giacomo 126
        k.status = KEY_PRESSED;
127
        keyb_hook(k,pad,FALSE);
1331 giacomo 128
 
129
        k.flag = 0;
130
        k.scan = KEY_K;
131
        k.ascii = 'k';
1359 giacomo 132
        k.status = KEY_PRESSED;
133
        keyb_hook(k,pad,FALSE);
1331 giacomo 134
 
135
        k.flag = 0;
136
        k.scan = KEY_L;
137
        k.ascii = 'l';
1359 giacomo 138
        k.status = KEY_PRESSED;
139
        keyb_hook(k,pad,FALSE);
1331 giacomo 140
 
141
        k.flag = 0;
142
        k.scan = KEY_U;
143
        k.ascii = 'u';
1359 giacomo 144
        k.status = KEY_PRESSED;
145
        keyb_hook(k,pad,FALSE);
1331 giacomo 146
 
147
        k.flag = 0;
148
        k.scan = KEY_I;
149
        k.ascii = 'i';
1359 giacomo 150
        k.status = KEY_PRESSED;
151
        keyb_hook(k,pad,FALSE);
1331 giacomo 152
 
153
        k.flag = 0;
154
        k.scan = KEY_O;
155
        k.ascii = 'o';
1359 giacomo 156
        k.status = KEY_PRESSED;
157
        keyb_hook(k,pad,FALSE);
1331 giacomo 158
 
159
        k.flag = 0;
160
        k.scan = KEY_Q;
1332 giacomo 161
        k.ascii = 'q';
1359 giacomo 162
        k.status = KEY_PRESSED;
163
        keyb_hook(k,pad,FALSE);
1331 giacomo 164
 
165
        k.flag = 0;
166
        k.scan = KEY_W;
1332 giacomo 167
        k.ascii = 'w';
1359 giacomo 168
        k.status = KEY_PRESSED;
169
        keyb_hook(k,pad,FALSE);
1331 giacomo 170
 
171
        k.flag = 0;
172
        k.scan = KEY_E;
1332 giacomo 173
        k.ascii = 'e';
1359 giacomo 174
        k.status = KEY_PRESSED;
175
        keyb_hook(k,pad,FALSE);
1331 giacomo 176
 
177
        k.flag = 0;
178
        k.scan = KEY_Z;
1332 giacomo 179
        k.ascii = 'z';
1359 giacomo 180
        k.status = KEY_PRESSED;
181
        keyb_hook(k,pad,FALSE);
1332 giacomo 182
 
183
 
184
        k.flag = 0;
185
        k.scan = KEY_C;
186
        k.ascii = 'c';
1359 giacomo 187
        k.status = KEY_PRESSED;
188
        keyb_hook(k,pad,FALSE);
1332 giacomo 189
 
190
        k.flag = 0;
191
        k.scan = KEY_A;
192
        k.ascii = 'a';
1359 giacomo 193
        k.status = KEY_PRESSED;
194
        keyb_hook(k,pad,FALSE);
1332 giacomo 195
 
196
        k.flag = 0;
197
        k.scan = KEY_S;
198
        k.ascii = 's';
1359 giacomo 199
        k.status = KEY_PRESSED;
200
        keyb_hook(k,pad,FALSE);
1332 giacomo 201
 
202
        k.flag = 0;
203
        k.scan = KEY_D;
204
        k.ascii = 'd';
1359 giacomo 205
        k.status = KEY_PRESSED;
206
        keyb_hook(k,pad,FALSE);
1332 giacomo 207
 
208
        k.flag = 0;
209
        k.scan = KEY_F;
210
        k.ascii = 'f';
1359 giacomo 211
        k.status = KEY_PRESSED;
212
        keyb_hook(k,pad,FALSE);
1332 giacomo 213
 
214
        k.flag = 0;
215
        k.scan = KEY_G;
216
        k.ascii = 'g';
1359 giacomo 217
        k.status = KEY_PRESSED;
218
        keyb_hook(k,pad,FALSE);
1332 giacomo 219
 
220
        k.flag = 0;
221
        k.scan = KEY_H;
222
        k.ascii = 'h';
1359 giacomo 223
        k.status = KEY_PRESSED;
224
        keyb_hook(k,pad,FALSE);
1332 giacomo 225
 
1331 giacomo 226
}