Control library for the Sparkfun Entertainment Trackballer breakout board.

Committer:
Nakor
Date:
Sun Feb 20 18:05:08 2011 +0000
Revision:
15:a66aea99500e
Parent:
7:229fc175e05e

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Nakor 2:3c680dd598b7 1 /* This library is for Sparkfun Entertainment's Trackballer breakout board.
Nakor 2:3c680dd598b7 2 * The board consists (mainly) of the trackball, 4 hall effect sensors, some magnets (obviously),
Nakor 2:3c680dd598b7 3 * a button, and 4 leds (white, red, green, blue).
Nakor 2:3c680dd598b7 4 *
Nakor 2:3c680dd598b7 5 * This library (trackballer) by Aaron Goselin.
Nakor 2:3c680dd598b7 6 * 2010 Aaron Goselin.
Nakor 2:3c680dd598b7 7 *
Nakor 2:3c680dd598b7 8 * You are free to use this as you like, but I would prefer credits stay in tact.
Nakor 2:3c680dd598b7 9 *
Nakor 2:3c680dd598b7 10 */
Nakor 2:3c680dd598b7 11
Nakor 2:3c680dd598b7 12 #ifndef _TRACKBALLER_
Nakor 2:3c680dd598b7 13 #define _TRACKBALLER_
Nakor 2:3c680dd598b7 14
Nakor 2:3c680dd598b7 15 #include "mbed.h"
Nakor 2:3c680dd598b7 16 //#include "PinDetect_m.h"
Nakor 2:3c680dd598b7 17
Nakor 3:000eee36525e 18 #define TRACK_INC 0.01
Nakor 2:3c680dd598b7 19
Nakor 6:c0ebd0f8f873 20 #define DEBUG_POSITION 0
Nakor 6:c0ebd0f8f873 21
Nakor 2:3c680dd598b7 22
Nakor 2:3c680dd598b7 23
Nakor 2:3c680dd598b7 24 class trackballer {
Nakor 2:3c680dd598b7 25
Nakor 2:3c680dd598b7 26 public:
Nakor 2:3c680dd598b7 27
Nakor 2:3c680dd598b7 28
Nakor 2:3c680dd598b7 29
Nakor 2:3c680dd598b7 30
Nakor 6:c0ebd0f8f873 31 trackballer(PinName button, PinName right, PinName down, PinName left, PinName up, PinName red, PinName green, PinName blue, PinName white, char limits = 0x00);
Nakor 2:3c680dd598b7 32
Nakor 5:0abcaea1fb07 33 void getState(float &xPosition, float &yPosition, char &button);
Nakor 7:229fc175e05e 34 void reset();
Nakor 2:3c680dd598b7 35
Nakor 2:3c680dd598b7 36
Nakor 2:3c680dd598b7 37
Nakor 2:3c680dd598b7 38
Nakor 2:3c680dd598b7 39 protected:
Nakor 2:3c680dd598b7 40 Timer _outputTimer;
Nakor 15:a66aea99500e 41 Timer _holdTimer;
Nakor 2:3c680dd598b7 42
Nakor 2:3c680dd598b7 43 DigitalIn * _buttonPin;
Nakor 2:3c680dd598b7 44 DigitalIn * _rightPin;
Nakor 2:3c680dd598b7 45 DigitalIn * _downPin;
Nakor 2:3c680dd598b7 46 DigitalIn * _leftPin;
Nakor 2:3c680dd598b7 47 DigitalIn * _upPin;
Nakor 2:3c680dd598b7 48
Nakor 2:3c680dd598b7 49 PwmOut * _redLED;
Nakor 2:3c680dd598b7 50 PwmOut * _greenLED;
Nakor 2:3c680dd598b7 51 PwmOut * _blueLED;
Nakor 2:3c680dd598b7 52 PwmOut * _whiteLED;
Nakor 2:3c680dd598b7 53
Nakor 2:3c680dd598b7 54 int _buttonPushCounter; // counter for the number of button presses
Nakor 2:3c680dd598b7 55
Nakor 2:3c680dd598b7 56 char _buttonState; // current state of the button
Nakor 2:3c680dd598b7 57 char _lastButtonState; // previous state of the button
Nakor 2:3c680dd598b7 58
Nakor 2:3c680dd598b7 59 char _upState;
Nakor 2:3c680dd598b7 60 char _downState;
Nakor 2:3c680dd598b7 61 char _leftState;
Nakor 2:3c680dd598b7 62 char _rightState;
Nakor 2:3c680dd598b7 63 char _lastUpState;
Nakor 2:3c680dd598b7 64 char _lastDownState;
Nakor 2:3c680dd598b7 65 char _lastLeftState;
Nakor 2:3c680dd598b7 66 char _lastRightState;
Nakor 2:3c680dd598b7 67
Nakor 2:3c680dd598b7 68 float _xPosition;
Nakor 2:3c680dd598b7 69 float _yPosition;
Nakor 2:3c680dd598b7 70
Nakor 2:3c680dd598b7 71
Nakor 2:3c680dd598b7 72 char _direction;
Nakor 6:c0ebd0f8f873 73 char _limits;
Nakor 2:3c680dd598b7 74
Nakor 2:3c680dd598b7 75
Nakor 2:3c680dd598b7 76 };
Nakor 2:3c680dd598b7 77
Nakor 0:2743c73d648d 78 #endif