25 void forward(uint8_t motorSelect, uint8_t speed)
30 sbi(MC_PORT, FORWARD_LEFT);
31 cbi(MC_PORT, REVERSE_LEFT);
35 sbi(MC_PORT, FORWARD_RIGHT);
36 cbi(MC_PORT, REVERSE_RIGHT);
41 sbi(MC_PORT, FORWARD_LEFT);
42 sbi(MC_PORT, FORWARD_RIGHT);
43 cbi(MC_PORT, REVERSE_LEFT);
44 cbi(MC_PORT, REVERSE_RIGHT);
51 void tickWheels(int16_t leftTicks, int16_t rightTicks, uint8_t speed)
55 forward(LEFT_MOTOR, speed);
59 reverse(LEFT_MOTOR, speed);
65 forward(RIGHT_MOTOR, speed);
69 reverse(RIGHT_MOTOR, speed);
101 void moveStraight(int16_t ticks, uint8_t speed)
103 tickWheels(ticks, ticks, speed);
109 void tractorTurn(uint8_t speed, int8_t brads)
113 tickWheels(brads, 0, speed);
114 delay(tractorOvershootDelay);
116 delay(tractorOvershootDelay);
121 tickWheels(0, brads, speed);
122 delay(tractorOvershootDelay);
124 delay(tractorOvershootDelay);
131 void tankTurn(uint8_t speed, int8_t brads)
133 int8_t halfBrads = brads / 2;
134 tickWheels(halfBrads, (-1 * halfBrads), speed);
153 void reverse(uint8_t motorSelect, uint8_t speed)
158 sbi(MC_PORT, REVERSE_LEFT);
159 cbi(MC_PORT, FORWARD_LEFT);
163 sbi(MC_PORT, REVERSE_RIGHT);
164 cbi(MC_PORT, FORWARD_RIGHT);
169 sbi(MC_PORT, REVERSE_LEFT);
170 sbi(MC_PORT, REVERSE_RIGHT);
171 cbi(MC_PORT, FORWARD_LEFT);
172 cbi(MC_PORT, FORWARD_RIGHT);
188 void brake(uint8_t motorSelect)
193 cbi(MC_PORT, REVERSE_LEFT);
194 cbi(MC_PORT, FORWARD_LEFT);
197 cbi(MC_PORT, REVERSE_RIGHT);
198 cbi(MC_PORT, FORWARD_RIGHT);
202 cbi(MC_PORT, REVERSE_LEFT);
203 cbi(MC_PORT, REVERSE_RIGHT);
204 cbi(MC_PORT, FORWARD_LEFT);
205 cbi(MC_PORT, FORWARD_RIGHT);
208 PWM_RIGHT(MAX_BRAKE);
212 void enableMotors(
void)
218 void disableMotors(
void)