Driver for controlling Renishaw RenBuggy

Dependencies:   SevenSegmentDisplay DCMotorDrive mbed MotorController

main.cpp

Committer:
jf1452
Date:
2014-02-05
Revision:
5:f10978ab432b
Parent:
4:64d065d6d072

File content as of revision 5:f10978ab432b:

/*******************************************************************************
* This program demonstrates how to drive the seven segment display             *
*                                                                              *
* Jon Fuge                                                                     *
* V1.0 24/12/2013 First issue of code                                          *
*******************************************************************************/

#include "mbed.h"
#include "SevenSegmentDisplay.h"
#include "MotorController.h"

uint16_t u16LeftSpeed = 0, u16RightSpeed = 0;

// Options to instantiate SevenSegmentDisplay are...
// FADE: causes the number changes to fade in smoothly
// INSTANT: causes the an instant number change
// + FLASH: causes the display to flash
SevenSegmentDisplay segmentled( FADE );

MotorController RenBuggy(p5, p7, p9, p6, p8, p10);
DigitalIn LFast(p9), LSlow(p12), RFast(p15), RSlow(p18);

void attimeout();            //declare prototype for timeout handler.

Ticker timeout;             //Create an instance of class Ticker called timeout.

int main()
{
    LFast.mode(PullUp);
    LSlow.mode(PullUp);
    RFast.mode(PullUp);
    RSlow.mode(PullUp);

    timeout.attach(&attimeout, 3);
//    LeftMotor.SetMotorPwmAndRevolutions(18000,32);

    RenBuggy.Forwards(100);

    for(;;) {
    } // Loop forever (the program uses interrupts)
}

void attimeout()
{
    static int Flip = 0;

    if (Flip++ == 0)
        segmentled.DisplayInt(RenBuggy.ReadLeftOdometer());
    else
    {
        segmentled.DisplayInt(RenBuggy.ReadRightOdometer());
        Flip = 0;
    }
}