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
Diff: test.cpp
- Revision:
- 20:dbec34f0e76b
- Parent:
- 19:a11ffc903774
- Child:
- 21:c279c6a83671
diff -r a11ffc903774 -r dbec34f0e76b test.cpp --- 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);