Revision 844
Added some debug statements which SHOULD BE REMOVED UPON MOVING TO TRUNK
encoders.c | ||
---|---|---|
5 | 5 |
|
6 | 6 |
unsigned int left_data_buf; |
7 | 7 |
unsigned int right_data_buf; |
8 |
char buf_index; |
|
8 |
char encoder_buf_index;
|
|
9 | 9 |
|
10 | 10 |
unsigned int left_data; |
11 | 11 |
unsigned int right_data; |
... | ... | |
43 | 43 |
void encoder_recv_complete(void); |
44 | 44 |
|
45 | 45 |
void encoder_recv_complete(){ |
46 |
|
|
46 |
encoder_buf_index = 0; |
|
47 | 47 |
// usb_puts("[");usb_puti(left_dx);usb_puts(",");usb_puti(right_dx);usb_puts("]\r\n"); |
48 | 48 |
// usb_puts("\r\n"); |
49 | 49 |
data_ready++; |
... | ... | |
70 | 70 |
data_ready=0; |
71 | 71 |
|
72 | 72 |
spi_init(encoder_recv/*put_bin*/, encoder_recv_complete); |
73 |
buf_index = 0; |
|
73 |
encoder_buf_index = 0;
|
|
74 | 74 |
left_data_buf = 0; |
75 | 75 |
right_data_buf= 0; |
76 | 76 |
left_data = -1; |
... | ... | |
90 | 90 |
right_data_array[i] = 0; |
91 | 91 |
} |
92 | 92 |
spi_transfer(5); |
93 |
//usb_puts("\tencoders.c Debug: ENCODERS INITIALIZED\n\r"); |
|
93 | 94 |
} |
94 | 95 |
|
95 | 96 |
/** |
... | ... | |
101 | 102 |
* @return the value of the specified encoder |
102 | 103 |
**/ |
103 | 104 |
int encoder_read(char encoder){ |
104 |
if(encoder==LEFT) |
|
105 |
if(encoder==LEFT){ |
|
106 |
//usb_puts("\tencoders.c Debug: PRINTING LEFT ENCODER VALUE\n\r"); |
|
105 | 107 |
return left_data; |
106 |
else if(encoder==RIGHT) |
|
108 |
} |
|
109 |
else if(encoder==RIGHT){ |
|
110 |
//usb_puts("\tencoders.c Debug: PRINTING RIGHT ENCODER VALUE\n\r"); |
|
107 | 111 |
return right_data; |
108 |
else return -1; |
|
112 |
} |
|
113 |
else{ |
|
114 |
//usb_puts("\tencoders.c Debug: INVALID ENCODER - USE LEFT/RIGHT\n\r"); |
|
115 |
return -1; |
|
116 |
} |
|
109 | 117 |
} |
110 | 118 |
|
111 | 119 |
int encoder_change(char encoder){ |
... | ... | |
201 | 209 |
|
202 | 210 |
//Parse the encoder data, comes in over 5 bytes 16 bits per encoder, |
203 | 211 |
// second is offset by 1 bit. |
204 |
switch(buf_index){ |
|
212 |
switch(encoder_buf_index){
|
|
205 | 213 |
case 0: |
206 | 214 |
right_data_buf |= ((short)data)<<8 & 0xff00; |
207 | 215 |
break; |
... | ... | |
217 | 225 |
case 4: left_data_buf |= (((short)data)>>7) & 0x1; |
218 | 226 |
} |
219 | 227 |
|
220 |
buf_index = (buf_index + 1) % 5;
|
|
228 |
encoder_buf_index = (encoder_buf_index + 1) % 5;
|
|
221 | 229 |
|
222 |
if(buf_index==0) { |
|
230 |
if(encoder_buf_index==0) {
|
|
223 | 231 |
|
224 | 232 |
if(left_data_buf & (COF | LIN) || !(left_data_buf & OCF)) left_data = INVALID; |
225 | 233 |
else if(((left_data_buf & MagINCn) > 0) && ((left_data_buf & MagDECn) > 0)) left_data = MAGNET_FAILURE; |
... | ... | |
270 | 278 |
timecount++; |
271 | 279 |
} |
272 | 280 |
|
281 |
|
|
273 | 282 |
void encoders_print_data_array(void){ |
274 | 283 |
int i; |
275 | 284 |
usb_puts("Left Data: Pointer is "); |
Also available in: Unified diff