David's dead reckoning code for the LVBots competition on March 6th. Uses the mbed LPC1768, DRV8835, QTR-3RC, and two DC motors with encoders.
Dependencies: PololuEncoder Pacer mbed GeneralDebouncer
Diff: main.cpp
- Revision:
- 12:835a4d24ae3b
- Parent:
- 10:e4dd36148539
- Child:
- 16:8eaa5bc2bdb1
--- a/main.cpp Sat Feb 22 04:53:35 2014 +0000 +++ b/main.cpp Sun Feb 23 22:23:34 2014 +0000 @@ -6,6 +6,7 @@ #include "leds.h" #include "pc_serial.h" #include "test.h" +#include "reckoner.h" int __attribute__((noreturn)) main() { @@ -18,10 +19,35 @@ // Test routines //testMotors(); //testEncoders(); - testLineSensors(); + //testLineSensors(); + testReckoner(); while(1) { } } + +void updateReckonerFromEncoders() +{ + while(encoderBuffer.hasEvents()) + { + PololuEncoderEvent event = encoderBuffer.readEvent(); + switch(event) + { + case ENCODER_LEFT | POLOLU_ENCODER_EVENT_INC: + reckoner.handleTickLeftForward(); + break; + case ENCODER_LEFT | POLOLU_ENCODER_EVENT_DEC: + reckoner.handleTickLeftBackward(); + break; + case ENCODER_RIGHT | POLOLU_ENCODER_EVENT_INC: + reckoner.handleTickRightForward(); + break; + case ENCODER_RIGHT | POLOLU_ENCODER_EVENT_DEC: + reckoner.handleTickRightBackward(); + break; + + } + } +}