David's line following code from the LVBots competition, 2015.
Dependencies: GeneralDebouncer Pacer PololuEncoder mbed
Fork of DeadReckoning by
main.cpp@17:2df9861f53ee, 2014-02-24 (annotated)
- Committer:
- DavidEGrayson
- Date:
- Mon Feb 24 01:38:55 2014 +0000
- Revision:
- 17:2df9861f53ee
- Parent:
- 16:8eaa5bc2bdb1
- Child:
- 18:b65fbb795396
Created a stub driveHome routine that we need to fill in.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
DavidEGrayson | 0:e77a0edb9878 | 1 | #include <mbed.h> |
DavidEGrayson | 8:78b1ff957cba | 2 | #include <Pacer.h> |
DavidEGrayson | 0:e77a0edb9878 | 3 | |
DavidEGrayson | 8:78b1ff957cba | 4 | #include "motors.h" |
DavidEGrayson | 8:78b1ff957cba | 5 | #include "encoders.h" |
DavidEGrayson | 9:9734347b5756 | 6 | #include "leds.h" |
DavidEGrayson | 8:78b1ff957cba | 7 | #include "pc_serial.h" |
DavidEGrayson | 9:9734347b5756 | 8 | #include "test.h" |
DavidEGrayson | 12:835a4d24ae3b | 9 | #include "reckoner.h" |
DavidEGrayson | 16:8eaa5bc2bdb1 | 10 | #include "buttons.h" |
DavidEGrayson | 0:e77a0edb9878 | 11 | |
DavidEGrayson | 10:e4dd36148539 | 12 | int __attribute__((noreturn)) main() |
DavidEGrayson | 2:968338353aef | 13 | { |
DavidEGrayson | 2:968338353aef | 14 | pc.baud(115200); |
DavidEGrayson | 2:968338353aef | 15 | |
DavidEGrayson | 2:968338353aef | 16 | // Enable pull-ups on encoder pins and give them a chance to settle. |
DavidEGrayson | 9:9734347b5756 | 17 | encodersInit(); |
DavidEGrayson | 9:9734347b5756 | 18 | motorsInit(); |
DavidEGrayson | 16:8eaa5bc2bdb1 | 19 | buttonsInit(); |
DavidEGrayson | 4:1b20a11765c8 | 20 | |
DavidEGrayson | 8:78b1ff957cba | 21 | // Test routines |
DavidEGrayson | 9:9734347b5756 | 22 | //testMotors(); |
DavidEGrayson | 10:e4dd36148539 | 23 | //testEncoders(); |
DavidEGrayson | 12:835a4d24ae3b | 24 | //testLineSensors(); |
DavidEGrayson | 16:8eaa5bc2bdb1 | 25 | //testReckoner(); |
DavidEGrayson | 17:2df9861f53ee | 26 | //testButtons(); |
DavidEGrayson | 17:2df9861f53ee | 27 | testDriveHome(); |
DavidEGrayson | 2:968338353aef | 28 | |
DavidEGrayson | 4:1b20a11765c8 | 29 | while(1) |
DavidEGrayson | 4:1b20a11765c8 | 30 | { |
DavidEGrayson | 9:9734347b5756 | 31 | |
DavidEGrayson | 0:e77a0edb9878 | 32 | } |
DavidEGrayson | 0:e77a0edb9878 | 33 | } |
DavidEGrayson | 12:835a4d24ae3b | 34 | |
DavidEGrayson | 17:2df9861f53ee | 35 | void __attribute__((noreturn)) driveHome() |
DavidEGrayson | 17:2df9861f53ee | 36 | { |
DavidEGrayson | 17:2df9861f53ee | 37 | led1 = 1; led2 = 1; led3 = 0; led4 = 0; |
DavidEGrayson | 17:2df9861f53ee | 38 | while(1) |
DavidEGrayson | 17:2df9861f53ee | 39 | { |
DavidEGrayson | 17:2df9861f53ee | 40 | |
DavidEGrayson | 17:2df9861f53ee | 41 | } |
DavidEGrayson | 17:2df9861f53ee | 42 | } |
DavidEGrayson | 17:2df9861f53ee | 43 | |
DavidEGrayson | 12:835a4d24ae3b | 44 | void updateReckonerFromEncoders() |
DavidEGrayson | 12:835a4d24ae3b | 45 | { |
DavidEGrayson | 12:835a4d24ae3b | 46 | while(encoderBuffer.hasEvents()) |
DavidEGrayson | 12:835a4d24ae3b | 47 | { |
DavidEGrayson | 12:835a4d24ae3b | 48 | PololuEncoderEvent event = encoderBuffer.readEvent(); |
DavidEGrayson | 12:835a4d24ae3b | 49 | switch(event) |
DavidEGrayson | 12:835a4d24ae3b | 50 | { |
DavidEGrayson | 17:2df9861f53ee | 51 | case ENCODER_LEFT | POLOLU_ENCODER_EVENT_INC: |
DavidEGrayson | 17:2df9861f53ee | 52 | reckoner.handleTickLeftForward(); |
DavidEGrayson | 17:2df9861f53ee | 53 | break; |
DavidEGrayson | 17:2df9861f53ee | 54 | case ENCODER_LEFT | POLOLU_ENCODER_EVENT_DEC: |
DavidEGrayson | 17:2df9861f53ee | 55 | reckoner.handleTickLeftBackward(); |
DavidEGrayson | 17:2df9861f53ee | 56 | break; |
DavidEGrayson | 17:2df9861f53ee | 57 | case ENCODER_RIGHT | POLOLU_ENCODER_EVENT_INC: |
DavidEGrayson | 17:2df9861f53ee | 58 | reckoner.handleTickRightForward(); |
DavidEGrayson | 17:2df9861f53ee | 59 | break; |
DavidEGrayson | 17:2df9861f53ee | 60 | case ENCODER_RIGHT | POLOLU_ENCODER_EVENT_DEC: |
DavidEGrayson | 17:2df9861f53ee | 61 | reckoner.handleTickRightBackward(); |
DavidEGrayson | 17:2df9861f53ee | 62 | break; |
DavidEGrayson | 12:835a4d24ae3b | 63 | } |
DavidEGrayson | 12:835a4d24ae3b | 64 | } |
DavidEGrayson | 12:835a4d24ae3b | 65 | } |
DavidEGrayson | 17:2df9861f53ee | 66 |