Subversion Repositories shark

Rev

Rev 1359 | 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
        k.flag = 0;
86
        k.scan = KEY_1;
87
        k.ascii = '1';
1390 mauro 88
        keyb_hook(k,pad);
1331 giacomo 89
 
90
        k.flag = 0;
91
        k.scan = KEY_2;
92
        k.ascii = '2';
1390 mauro 93
        keyb_hook(k,pad);
1331 giacomo 94
 
95
        k.flag = 0;
96
        k.scan = KEY_3;
97
        k.ascii = '3';
1390 mauro 98
        keyb_hook(k,pad);
1331 giacomo 99
 
100
        k.flag = 0;
101
        k.scan = KEY_4;
102
        k.ascii = '4';
1390 mauro 103
        keyb_hook(k,pad);
1331 giacomo 104
 
105
        k.flag = 0;
106
        k.scan = KEY_5;
107
        k.ascii = '5';
1390 mauro 108
        keyb_hook(k,pad);
1331 giacomo 109
 
110
        k.flag = 0;
111
        k.scan = KEY_6;
112
        k.ascii = '6';
1390 mauro 113
        keyb_hook(k,pad);
1331 giacomo 114
 
115
        k.flag = 0;
116
        k.scan = KEY_J;
117
        k.ascii = 'j';
1390 mauro 118
        keyb_hook(k,pad);
1331 giacomo 119
 
120
        k.flag = 0;
121
        k.scan = KEY_K;
122
        k.ascii = 'k';
1390 mauro 123
        keyb_hook(k,pad);
1331 giacomo 124
 
125
        k.flag = 0;
126
        k.scan = KEY_L;
127
        k.ascii = 'l';
1390 mauro 128
        keyb_hook(k,pad);
1331 giacomo 129
 
130
        k.flag = 0;
131
        k.scan = KEY_U;
132
        k.ascii = 'u';
1390 mauro 133
        keyb_hook(k,pad);
1331 giacomo 134
 
135
        k.flag = 0;
136
        k.scan = KEY_I;
137
        k.ascii = 'i';
1390 mauro 138
        keyb_hook(k,pad);
1331 giacomo 139
 
140
        k.flag = 0;
141
        k.scan = KEY_O;
142
        k.ascii = 'o';
1390 mauro 143
        keyb_hook(k,pad);
1331 giacomo 144
 
145
        k.flag = 0;
146
        k.scan = KEY_Q;
1332 giacomo 147
        k.ascii = 'q';
1390 mauro 148
        keyb_hook(k,pad);
1331 giacomo 149
 
150
        k.flag = 0;
151
        k.scan = KEY_W;
1332 giacomo 152
        k.ascii = 'w';
1390 mauro 153
        keyb_hook(k,pad);
1331 giacomo 154
 
155
        k.flag = 0;
156
        k.scan = KEY_E;
1332 giacomo 157
        k.ascii = 'e';
1390 mauro 158
        keyb_hook(k,pad);
1331 giacomo 159
 
160
        k.flag = 0;
161
        k.scan = KEY_Z;
1332 giacomo 162
        k.ascii = 'z';
1390 mauro 163
        keyb_hook(k,pad);
1332 giacomo 164
 
165
 
166
        k.flag = 0;
1390 mauro 167
        k.scan = KEY_C;
168
        k.ascii = 'c';
169
        keyb_hook(k,pad);
1332 giacomo 170
 
171
        k.flag = 0;
1390 mauro 172
        k.scan = KEY_A;
1332 giacomo 173
        k.ascii = 'a';
1390 mauro 174
        keyb_hook(k,pad);
1332 giacomo 175
 
176
        k.flag = 0;
1390 mauro 177
        k.scan = KEY_S;
1332 giacomo 178
        k.ascii = 's';
1390 mauro 179
        keyb_hook(k,pad);
1332 giacomo 180
 
181
        k.flag = 0;
1390 mauro 182
        k.scan = KEY_D;
1332 giacomo 183
        k.ascii = 'd';
1390 mauro 184
        keyb_hook(k,pad);
1332 giacomo 185
 
1390 mauro 186
        k.flag = 0;
187
        k.scan = KEY_F;
1332 giacomo 188
        k.ascii = 'f';
1390 mauro 189
        keyb_hook(k,pad);
1332 giacomo 190
 
191
        k.flag = 0;
1390 mauro 192
        k.scan = KEY_G;
1332 giacomo 193
        k.ascii = 'g';
1390 mauro 194
        keyb_hook(k,pad);
1332 giacomo 195
 
1390 mauro 196
        k.flag = 0;
197
        k.scan = KEY_H;
1332 giacomo 198
        k.ascii = 'h';
1390 mauro 199
        keyb_hook(k,pad);
1331 giacomo 200
}