Allows the M3Pi to be used as a Sumo robot, using the sharp 100 distance sensors on the front.

Dependencies:   mbed

SharpDigiDist100/SharpDigiDist100.h

Committer:
p07gbar
Date:
2012-03-14
Revision:
0:342c14fb10c0

File content as of revision 0:342c14fb10c0:

#ifndef SHARPDIGIDIST100_H
#define SHARPDIGIDIST100_H

#include "mbed.h"

/** A class which interfaces with  a Sharp Digital Distance sensor (GP2Y0D810)
 *
 *  Example:
 * @code
 * 
 * @endcode
 *
 */

class SharpDigiDist100
{
public:

/** Create a sensor input
 *
 * @param pin The pin the output of the sensor is connected to
 */
 
SharpDigiDist100(PinName pin);

/** The enum which makes up the output
 * 
 */

enum Distance
{
    Near = 1,
    Mid,
    Far
};

/** Returns the distace as an enum
 *
 * @return The distance code: 1 is near, 2 is middle distance and 3 is far
 */
 
int getDistance();

/** Attaches a function which is called on distance change
 *
 * @param A pointer to a function with params/returns: void func(void)
 */

void attachOnChange(void (*ptr) (void));


protected:

InterruptIn intin;

DigitalIn pinin;

Timer timer1;

enum Distance current;

enum Distance last;

void onInt();

Timeout timeout;

void (*onChange) (void);

bool onChangeAttached;

//DigitalOut Debug;
};

#endif