Revision 1205
Implemented single encoder testing
Cleaned up motor direction/wall direction naming
test_motors.c | ||
---|---|---|
11 | 11 |
|
12 | 12 |
static void test_motors_direction_velocity (uint8_t direction1, uint8_t direction2, uint8_t velocity) |
13 | 13 |
{ |
14 |
uint8_t velocity1=velocity, velocity2=velocity; |
|
15 |
|
|
16 | 14 |
robot_set_motors (direction1, velocity, direction2, velocity); |
17 | 15 |
delay_ms (vel_delay); |
18 | 16 |
|
... | ... | |
26 | 24 |
// } |
27 | 25 |
} |
28 | 26 |
|
29 |
static char *direction_string (uint8_t direction) |
|
30 |
{ |
|
31 |
if (direction==direction_forward) |
|
32 |
return "forward"; |
|
33 |
else if (direction==direction_backward) |
|
34 |
return "backward"; |
|
35 |
else if (direction==direction_off) |
|
36 |
return "off"; |
|
37 |
else |
|
38 |
return "?"; |
|
39 |
} |
|
40 |
|
|
41 | 27 |
static void test_motors_direction (uint8_t direction1, uint8_t direction2) |
42 | 28 |
{ |
43 | 29 |
// Use 16 bit variable for vel to avoid problems with overflow (if vel=250 and 10 is added, it would be 260-256=4 |
... | ... | |
52 | 38 |
{ |
53 | 39 |
uint8_t direction=(i==1)?direction1:direction2; |
54 | 40 |
|
55 |
if (direction!=direction_off) |
|
41 |
if (direction!=motor_direction_off)
|
|
56 | 42 |
{ |
57 | 43 |
usb_puts ("data motor "); |
58 | 44 |
usb_puti (i); |
59 | 45 |
usb_puts (" "); |
60 |
usb_puts (direction_string (direction)); |
|
46 |
usb_puts (motor_direction_string (direction));
|
|
61 | 47 |
usb_puts (" increasing "); |
62 | 48 |
usb_puts (" 160/100 170/200 180/300 190/400 200/500 210/600 220/700" NL); |
63 | 49 |
} |
... | ... | |
73 | 59 |
{ |
74 | 60 |
uint8_t direction=(i==1)?direction1:direction2; |
75 | 61 |
|
76 |
if (direction!=direction_off) |
|
62 |
if (direction!=motor_direction_off)
|
|
77 | 63 |
{ |
78 | 64 |
usb_puts ("data motor "); |
79 | 65 |
usb_puti (i); |
80 | 66 |
usb_puts (" "); |
81 |
usb_puts (direction_string (direction)); |
|
67 |
usb_puts (motor_direction_string (direction));
|
|
82 | 68 |
usb_puts (" decreasing "); |
83 | 69 |
usb_puts (" 220/700 210/600 200/500 190/400 180/300 170/200 160/100" NL); |
84 | 70 |
} |
... | ... | |
92 | 78 |
{ |
93 | 79 |
usb_puts("# Testing motors" NL); |
94 | 80 |
|
95 |
test_motors_direction (direction_forward, direction_backward);
|
|
96 |
test_motors_direction (direction_backward, direction_forward);
|
|
81 |
test_motors_direction (motor_direction_forward, motor_direction_backward);
|
|
82 |
test_motors_direction (motor_direction_backward, motor_direction_forward);
|
|
97 | 83 |
|
98 | 84 |
robot_set_motors_off (); |
99 | 85 |
|
... | ... | |
104 | 90 |
{ |
105 | 91 |
if (num==1) |
106 | 92 |
{ |
107 |
test_motors_direction (direction_forward, direction_off);
|
|
108 |
test_motors_direction (direction_backward, direction_off);
|
|
93 |
test_motors_direction (motor_direction_forward, motor_direction_off);
|
|
94 |
test_motors_direction (motor_direction_backward, motor_direction_off);
|
|
109 | 95 |
} |
110 | 96 |
else if (num==2) |
111 | 97 |
{ |
112 |
test_motors_direction (direction_off, direction_forward);
|
|
113 |
test_motors_direction (direction_off, direction_backward);
|
|
98 |
test_motors_direction (motor_direction_off, motor_direction_forward);
|
|
99 |
test_motors_direction (motor_direction_off, motor_direction_backward);
|
|
114 | 100 |
} |
115 | 101 |
} |
Also available in: Unified diff