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:
20:dbec34f0e76b
Parent:
19:a11ffc903774
Child:
21:c279c6a83671
--- a/test.cpp	Tue Feb 25 02:58:16 2014 +0000
+++ b/test.cpp	Thu Feb 27 19:46:35 2014 +0000
@@ -12,7 +12,7 @@
 #include "reckoner.h"
 #include "buttons.h"
 
-void __attribute__((noreturn)) driveHome();
+void __attribute__((noreturn)) infiniteReckonerReportLoop();
 void printBar(const char * name, uint16_t adcResult);
 
 void testDriveHome()
@@ -23,6 +23,18 @@
         updateReckonerFromEncoders();
     }   
     driveHome();
+    infiniteReckonerReportLoop();     
+}
+
+void testFinalSettleIn()
+{
+    led1 = 1;
+    while(!button1DefinitelyPressed())
+    {
+        updateReckonerFromEncoders();
+    }   
+    finalSettleIn();
+    infiniteReckonerReportLoop();     
 }
 
 
@@ -147,6 +159,23 @@
     }
 }
 
+void infiniteReckonerReportLoop()
+{
+    Pacer reportPacer(200000);
+    while(1)
+    {
+        if(reportPacer.pace())
+        {
+            led4 = 1;
+            pc.printf("%11d %11d %11d %11d | %11f %11f\r\n",
+              reckoner.cos, reckoner.sin, reckoner.x, reckoner.y,
+              determinant(), dotProduct());
+            led4 = 0;
+       }
+    }
+   
+}
+
 void printBar(const char * name, uint16_t adcResult)
 {
     pc.printf("%-2s %5d |", name, adcResult);