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
main.cpp@8:78b1ff957cba, 2014-02-22 (annotated)
- Committer:
- DavidEGrayson
- Date:
- Sat Feb 22 02:23:21 2014 +0000
- Revision:
- 8:78b1ff957cba
- Parent:
- 7:85b8b5acfb22
- Child:
- 9:9734347b5756
refactored into many files
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
DavidEGrayson | 0:e77a0edb9878 | 1 | #include <mbed.h> |
DavidEGrayson | 8:78b1ff957cba | 2 | #include <Pacer.h> |
DavidEGrayson | 0:e77a0edb9878 | 3 | |
DavidEGrayson | 8:78b1ff957cba | 4 | #include "motors.h" |
DavidEGrayson | 8:78b1ff957cba | 5 | #include "encoders.h" |
DavidEGrayson | 8:78b1ff957cba | 6 | #include "pc_serial.h" |
DavidEGrayson | 8:78b1ff957cba | 7 | #include "leds.h" |
DavidEGrayson | 0:e77a0edb9878 | 8 | |
DavidEGrayson | 2:968338353aef | 9 | int main() |
DavidEGrayson | 2:968338353aef | 10 | { |
DavidEGrayson | 2:968338353aef | 11 | pc.baud(115200); |
DavidEGrayson | 2:968338353aef | 12 | |
DavidEGrayson | 2:968338353aef | 13 | // Enable pull-ups on encoder pins and give them a chance to settle. |
DavidEGrayson | 8:78b1ff957cba | 14 | encoders_init(); |
DavidEGrayson | 4:1b20a11765c8 | 15 | motors_init(); |
DavidEGrayson | 4:1b20a11765c8 | 16 | |
DavidEGrayson | 8:78b1ff957cba | 17 | // Test routines |
DavidEGrayson | 8:78b1ff957cba | 18 | motors_test(); |
DavidEGrayson | 8:78b1ff957cba | 19 | encoders_test(); |
DavidEGrayson | 2:968338353aef | 20 | |
DavidEGrayson | 5:01ad080dc4fa | 21 | Pacer reportPacer(500000); |
DavidEGrayson | 1:d0d9653a4547 | 22 | Pacer blinkPacer(200000); |
DavidEGrayson | 4:1b20a11765c8 | 23 | while(1) |
DavidEGrayson | 4:1b20a11765c8 | 24 | { |
DavidEGrayson | 0:e77a0edb9878 | 25 | while(encoderBuffer.hasEvents()) |
DavidEGrayson | 0:e77a0edb9878 | 26 | { |
DavidEGrayson | 0:e77a0edb9878 | 27 | PololuEncoderEvent event = encoderBuffer.readEvent(); |
DavidEGrayson | 0:e77a0edb9878 | 28 | } |
DavidEGrayson | 2:968338353aef | 29 | |
DavidEGrayson | 1:d0d9653a4547 | 30 | if(reportPacer.pace()) |
DavidEGrayson | 1:d0d9653a4547 | 31 | { |
DavidEGrayson | 1:d0d9653a4547 | 32 | led2 = 1; |
DavidEGrayson | 8:78b1ff957cba | 33 | pc.printf("%8d %8d\n", encoder1.getCount(), encoder2.getCount()); |
DavidEGrayson | 1:d0d9653a4547 | 34 | led2 = 0; |
DavidEGrayson | 1:d0d9653a4547 | 35 | } |
DavidEGrayson | 2:968338353aef | 36 | |
DavidEGrayson | 1:d0d9653a4547 | 37 | if (blinkPacer.pace()) |
DavidEGrayson | 1:d0d9653a4547 | 38 | { |
DavidEGrayson | 1:d0d9653a4547 | 39 | led1 = !led1; |
DavidEGrayson | 1:d0d9653a4547 | 40 | } |
DavidEGrayson | 0:e77a0edb9878 | 41 | } |
DavidEGrayson | 0:e77a0edb9878 | 42 | } |