Driver for controlling Renishaw RenBuggy

Dependencies:   SevenSegmentDisplay DCMotorDrive mbed MotorController

Committer:
jf1452
Date:
Wed Feb 05 10:36:57 2014 +0000
Revision:
5:f10978ab432b
Parent:
4:64d065d6d072
Updates

Who changed what in which revision?

UserRevisionLine numberNew 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 }