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:
Thu Feb 20 18:55:04 2014 +0000
Revision:
1:d0d9653a4547
Parent:
0:e77a0edb9878
Child:
2:968338353aef
Added pacers.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
DavidEGrayson 0:e77a0edb9878 1 #include <mbed.h>
DavidEGrayson 0:e77a0edb9878 2 #include "PololuEncoder.h"
DavidEGrayson 1:d0d9653a4547 3 #include "Pacer.h"
DavidEGrayson 0:e77a0edb9878 4
DavidEGrayson 1:d0d9653a4547 5 DigitalOut led1(LED1), led2(LED2);
DavidEGrayson 0:e77a0edb9878 6
DavidEGrayson 0:e77a0edb9878 7 Serial pc(USBTX, USBRX);
DavidEGrayson 0:e77a0edb9878 8
DavidEGrayson 0:e77a0edb9878 9 #define ENCODER1 0x00
DavidEGrayson 0:e77a0edb9878 10
DavidEGrayson 0:e77a0edb9878 11 PololuEncoderBuffer encoderBuffer;
DavidEGrayson 0:e77a0edb9878 12 PololuEncoder encoder1(p6, p7, &encoderBuffer, ENCODER1);
DavidEGrayson 0:e77a0edb9878 13
DavidEGrayson 0:e77a0edb9878 14 int main() {
DavidEGrayson 1:d0d9653a4547 15 Pacer reportPacer(250000);
DavidEGrayson 1:d0d9653a4547 16 Pacer blinkPacer(200000);
DavidEGrayson 1:d0d9653a4547 17 uint32_t eventCount = 0;
DavidEGrayson 0:e77a0edb9878 18 while(1) {
DavidEGrayson 0:e77a0edb9878 19 while(encoderBuffer.hasEvents())
DavidEGrayson 0:e77a0edb9878 20 {
DavidEGrayson 0:e77a0edb9878 21 PololuEncoderEvent event = encoderBuffer.readEvent();
DavidEGrayson 1:d0d9653a4547 22 eventCount += 1;
DavidEGrayson 1:d0d9653a4547 23 pc.printf("e %x\n", event);
DavidEGrayson 0:e77a0edb9878 24 }
DavidEGrayson 1:d0d9653a4547 25 if(reportPacer.pace())
DavidEGrayson 1:d0d9653a4547 26 {
DavidEGrayson 1:d0d9653a4547 27 led2 = 1;
DavidEGrayson 1:d0d9653a4547 28 pc.printf("%8x %8x\n", encoder1.getCount(), eventCount);
DavidEGrayson 1:d0d9653a4547 29 led2 = 0;
DavidEGrayson 1:d0d9653a4547 30 }
DavidEGrayson 1:d0d9653a4547 31 if (blinkPacer.pace())
DavidEGrayson 1:d0d9653a4547 32 {
DavidEGrayson 1:d0d9653a4547 33 led1 = !led1;
DavidEGrayson 1:d0d9653a4547 34 }
DavidEGrayson 0:e77a0edb9878 35 }
DavidEGrayson 0:e77a0edb9878 36 }