Driver for controlling Renishaw RenBuggy
Dependencies: SevenSegmentDisplay DCMotorDrive mbed MotorController
main.cpp@5:f10978ab432b, 2014-02-05 (annotated)
- Committer:
- jf1452
- Date:
- Wed Feb 05 10:36:57 2014 +0000
- Revision:
- 5:f10978ab432b
- Parent:
- 4:64d065d6d072
Updates
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jf1452 | 0:ae927e3c7264 | 1 | /******************************************************************************* |
jf1452 | 0:ae927e3c7264 | 2 | * This program demonstrates how to drive the seven segment display * |
jf1452 | 0:ae927e3c7264 | 3 | * * |
jf1452 | 0:ae927e3c7264 | 4 | * Jon Fuge * |
jf1452 | 0:ae927e3c7264 | 5 | * V1.0 24/12/2013 First issue of code * |
jf1452 | 0:ae927e3c7264 | 6 | *******************************************************************************/ |
jf1452 | 0:ae927e3c7264 | 7 | |
jf1452 | 0:ae927e3c7264 | 8 | #include "mbed.h" |
jf1452 | 0:ae927e3c7264 | 9 | #include "SevenSegmentDisplay.h" |
jf1452 | 3:0dd99309381e | 10 | #include "MotorController.h" |
jf1452 | 0:ae927e3c7264 | 11 | |
jf1452 | 3:0dd99309381e | 12 | uint16_t u16LeftSpeed = 0, u16RightSpeed = 0; |
jf1452 | 0:ae927e3c7264 | 13 | |
jf1452 | 1:919b214c583c | 14 | // Options to instantiate SevenSegmentDisplay are... |
jf1452 | 1:919b214c583c | 15 | // FADE: causes the number changes to fade in smoothly |
jf1452 | 1:919b214c583c | 16 | // INSTANT: causes the an instant number change |
jf1452 | 1:919b214c583c | 17 | // + FLASH: causes the display to flash |
jf1452 | 1:919b214c583c | 18 | SevenSegmentDisplay segmentled( FADE ); |
jf1452 | 0:ae927e3c7264 | 19 | |
jf1452 | 4:64d065d6d072 | 20 | MotorController RenBuggy(p5, p7, p9, p6, p8, p10); |
jf1452 | 3:0dd99309381e | 21 | DigitalIn LFast(p9), LSlow(p12), RFast(p15), RSlow(p18); |
jf1452 | 3:0dd99309381e | 22 | |
jf1452 | 0:ae927e3c7264 | 23 | void attimeout(); //declare prototype for timeout handler. |
jf1452 | 0:ae927e3c7264 | 24 | |
jf1452 | 0:ae927e3c7264 | 25 | Ticker timeout; //Create an instance of class Ticker called timeout. |
jf1452 | 0:ae927e3c7264 | 26 | |
jf1452 | 0:ae927e3c7264 | 27 | int main() |
jf1452 | 0:ae927e3c7264 | 28 | { |
jf1452 | 3:0dd99309381e | 29 | LFast.mode(PullUp); |
jf1452 | 3:0dd99309381e | 30 | LSlow.mode(PullUp); |
jf1452 | 3:0dd99309381e | 31 | RFast.mode(PullUp); |
jf1452 | 3:0dd99309381e | 32 | RSlow.mode(PullUp); |
jf1452 | 0:ae927e3c7264 | 33 | |
jf1452 | 3:0dd99309381e | 34 | timeout.attach(&attimeout, 3); |
jf1452 | 3:0dd99309381e | 35 | // LeftMotor.SetMotorPwmAndRevolutions(18000,32); |
jf1452 | 1:919b214c583c | 36 | |
jf1452 | 4:64d065d6d072 | 37 | RenBuggy.Forwards(100); |
jf1452 | 3:0dd99309381e | 38 | |
jf1452 | 3:0dd99309381e | 39 | for(;;) { |
jf1452 | 3:0dd99309381e | 40 | } // Loop forever (the program uses interrupts) |
jf1452 | 0:ae927e3c7264 | 41 | } |
jf1452 | 0:ae927e3c7264 | 42 | |
jf1452 | 1:919b214c583c | 43 | void attimeout() |
jf1452 | 0:ae927e3c7264 | 44 | { |
jf1452 | 3:0dd99309381e | 45 | static int Flip = 0; |
jf1452 | 4:64d065d6d072 | 46 | |
jf1452 | 3:0dd99309381e | 47 | if (Flip++ == 0) |
jf1452 | 4:64d065d6d072 | 48 | segmentled.DisplayInt(RenBuggy.ReadLeftOdometer()); |
jf1452 | 3:0dd99309381e | 49 | else |
jf1452 | 3:0dd99309381e | 50 | { |
jf1452 | 4:64d065d6d072 | 51 | segmentled.DisplayInt(RenBuggy.ReadRightOdometer()); |
jf1452 | 3:0dd99309381e | 52 | Flip = 0; |
jf1452 | 3:0dd99309381e | 53 | } |
jf1452 | 1:919b214c583c | 54 | } |