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

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?

UserRevisionLine numberNew 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 }