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

Revision:
2:968338353aef
Parent:
1:d0d9653a4547
Child:
3:59c80d4b4bf2
--- a/main.cpp	Thu Feb 20 18:55:04 2014 +0000
+++ b/main.cpp	Thu Feb 20 20:09:40 2014 +0000
@@ -8,10 +8,22 @@
 
 #define ENCODER1 0x00
 
+const PinName encoderPin1A = p6,
+              encoderPin1B = p7;
+
 PololuEncoderBuffer encoderBuffer;
-PololuEncoder encoder1(p6, p7, &encoderBuffer, ENCODER1);
+PololuEncoder encoder1(encoderPin1A, encoderPin1B, &encoderBuffer, ENCODER1);
 
-int main() {
+int main()
+{
+    pc.baud(115200);
+    
+    // Enable pull-ups on encoder pins and give them a chance to settle.
+    DigitalIn(encoderPin1A).mode(PullUp);
+    DigitalIn(encoderPin1B).mode(PullUp);
+    wait_us(50);
+    encoder1.init();
+
     Pacer reportPacer(250000);
     Pacer blinkPacer(200000);
     uint32_t eventCount = 0;    
@@ -20,14 +32,17 @@
         {
             PololuEncoderEvent event = encoderBuffer.readEvent();
             eventCount += 1;
-            pc.printf("e %x\n", event);
         }
+        
         if(reportPacer.pace())
         {
             led2 = 1;
-            pc.printf("%8x %8x\n", encoder1.getCount(), eventCount);
+            char str[80];
+            sprintf(str, "%8x %8x\n", encoder1.getCount(), eventCount);
+            pc.puts(str);
             led2 = 0;
         }
+        
         if (blinkPacer.pace())
         {
             led1 = !led1;