David's line following code from the LVBots competition, 2015.
Dependencies: GeneralDebouncer Pacer PololuEncoder mbed
Fork of DeadReckoning by
Diff: main.cpp
- Revision:
- 37:23000a47ed2b
- Parent:
- 34:6c84680d823a
- Child:
- 38:5e93a479c244
diff -r ccb03b734737 -r 23000a47ed2b main.cpp --- a/main.cpp Thu Mar 06 02:39:07 2014 +0000 +++ b/main.cpp Thu Mar 06 05:11:46 2014 +0000 @@ -15,6 +15,8 @@ Reckoner reckoner; LineTracker lineTracker; +Logger logger; +Pacer loggerPacer(50000); const int16_t drivingSpeed = 400; @@ -49,6 +51,8 @@ //testSensorGlitches(); //testTurnInPlace(); //testCloseness(); + //testLogger(); + // Real routines for the contest. loadCalibration(); @@ -72,9 +76,29 @@ //finalSettleIn(); setLeds(1, 1, 1, 1); - while(1){} + loggerReportLoop(); +} + +void loggerService() +{ + if (loggerPacer.pace()) + { + logger.log(); + } } +void loggerReportLoop() +{ + while(1) + { + if(button1DefinitelyPressed()) + { + logger.dump(); + } + } +} + + void loadCalibration() { /** QTR-3RC **/ @@ -209,7 +233,8 @@ lineTracker.read(); lineTracker.updateCalibration(); updateReckonerFromEncoders(); - updateMotorsToDriveStraight(); + loggerService(); + updateMotorsToDriveStraight(); lineStatus.update(lineTracker.getLineVisible()); if(lineStatus.getState() == true && lineStatus.getTimeInCurrentStateMicroseconds() > 20000) @@ -249,6 +274,7 @@ { lineTracker.read(); updateReckonerFromEncoders(); + loggerService(); lineStatus.update(lineTracker.getLineVisible()); @@ -271,7 +297,8 @@ while(1) { updateReckonerFromEncoders(); - + loggerService(); + float magn = magnitude(); if (magn < (1<<(14+7))) @@ -329,7 +356,8 @@ led1 = (state == 1); updateReckonerFromEncoders(); - + loggerService(); + float dot = dotProduct(); int16_t speedModification = -dot * settleModificationStrength; if (speedModification > settleModificationStrength)