A class to handle reading, scaling and filtering horizontal and vertical position, and rise/fall interrupts for the button.
Joystick.h
- Committer:
- alex89_2
- Date:
- 2010-09-28
- Revision:
- 1:e55694d8a418
- Parent:
- 0:9c486d50434e
- Child:
- 2:8805f880e231
File content as of revision 1:e55694d8a418:
//remove repetition #ifndef MBED_JOYSTICK_H #define MBED_JOYSTICK_H //required to use mbed functions #include "mbed.h" struct joyhv { double h; double v; }; /** Class: Joystick * Used for reading from an analog joystick * * Example: * > #include "mbed.h" * > Joystick joy(p20, p19, p18); */ class Joystick { public: /** Constructor: Joystick * * * Variables: * b - DigitalIn pin for button * h - AnalogIn pin for horizontal * v - AnalogIn pin for vertical */ Joystick(PinName b, PinName h, PinName v); /* Function: read * Read the joystick position, represented as a joyhv value - h and v are doubles in the range [0.0, 1.0] * * Variables: * returns - A structure of two double values representing the position of the joystick, * measured as a percentage vertically (joyhv.v) or horizontally (joyhv.h) */ joyhv read(); /* Function: getV * Read the joystick's vertical position, represented as a double value in the range [0.0, 1.0] * * Variables: * returns - A double values representing the vertical position of the joystick, * measured as a percentage */ double getV(); /* Function: getH * Read the joystick's horizontal position, represented as a double value in the range [0.0, 1.0] * * Variables: * returns - A double values representing the horizontal position of the joystick, * measured as a percentage */ double getH(); /* Function: rise * Attach a function to call when a rising edge occurs on the button input * * Variables: * fptr - A pointer to a void function, or 0 to set as none */ void rise (void (*fptr)(void)); /* Function: fall * Attach a function to call when a falling edge occurs on the button input * * Variables: * fptr - A pointer to a void function, or 0 to set as none */ void fall (void (*fptr)(void)); /* Function: operator joyhv * An operator shorthand for <read()> * * The joyhv() operator can be used as a shorthand for <read()> to simplify common code sequences * */ operator joyhv (); joyhv scale(joyhv read); joyhv filter(joyhv read, double factor); private: InterruptIn _b; AnalogIn _h; AnalogIn _v; }; #endif