Control library for the Sparkfun Entertainment Trackballer breakout board.

Committer:
Nakor
Date:
Sat Feb 19 19:31:22 2011 +0000
Revision:
2:3c680dd598b7
Parent:
1:0129b1984b5a
Child:
3:000eee36525e
Small changes to setup.

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 2:3c680dd598b7 18 #define TRACK_INC 0.02
Nakor 2:3c680dd598b7 19
Nakor 2:3c680dd598b7 20
Nakor 2:3c680dd598b7 21
Nakor 2:3c680dd598b7 22 class trackballer {
Nakor 2:3c680dd598b7 23
Nakor 2:3c680dd598b7 24 public:
Nakor 2:3c680dd598b7 25
Nakor 2:3c680dd598b7 26
Nakor 2:3c680dd598b7 27
Nakor 2:3c680dd598b7 28
Nakor 2:3c680dd598b7 29 trackballer(PinName button, PinName right, PinName down, PinName left, PinName up, PinName red, PinName green, PinName blue, PinName white);
Nakor 2:3c680dd598b7 30
Nakor 2:3c680dd598b7 31 void getDirection(float &xPosition, float &yPosition, char &button);
Nakor 2:3c680dd598b7 32
Nakor 2:3c680dd598b7 33
Nakor 2:3c680dd598b7 34
Nakor 2:3c680dd598b7 35
Nakor 2:3c680dd598b7 36 protected:
Nakor 2:3c680dd598b7 37 Timer _outputTimer;
Nakor 2:3c680dd598b7 38
Nakor 2:3c680dd598b7 39 DigitalIn * _buttonPin;
Nakor 2:3c680dd598b7 40 DigitalIn * _rightPin;
Nakor 2:3c680dd598b7 41 DigitalIn * _downPin;
Nakor 2:3c680dd598b7 42 DigitalIn * _leftPin;
Nakor 2:3c680dd598b7 43 DigitalIn * _upPin;
Nakor 2:3c680dd598b7 44
Nakor 2:3c680dd598b7 45 PwmOut * _redLED;
Nakor 2:3c680dd598b7 46 PwmOut * _greenLED;
Nakor 2:3c680dd598b7 47 PwmOut * _blueLED;
Nakor 2:3c680dd598b7 48 PwmOut * _whiteLED;
Nakor 2:3c680dd598b7 49
Nakor 2:3c680dd598b7 50 int _buttonPushCounter; // counter for the number of button presses
Nakor 2:3c680dd598b7 51
Nakor 2:3c680dd598b7 52 char _buttonState; // current state of the button
Nakor 2:3c680dd598b7 53 char _lastButtonState; // previous state of the button
Nakor 2:3c680dd598b7 54
Nakor 2:3c680dd598b7 55 char _upState;
Nakor 2:3c680dd598b7 56 char _downState;
Nakor 2:3c680dd598b7 57 char _leftState;
Nakor 2:3c680dd598b7 58 char _rightState;
Nakor 2:3c680dd598b7 59 char _lastUpState;
Nakor 2:3c680dd598b7 60 char _lastDownState;
Nakor 2:3c680dd598b7 61 char _lastLeftState;
Nakor 2:3c680dd598b7 62 char _lastRightState;
Nakor 2:3c680dd598b7 63
Nakor 2:3c680dd598b7 64 float _xPosition;
Nakor 2:3c680dd598b7 65 float _yPosition;
Nakor 2:3c680dd598b7 66
Nakor 2:3c680dd598b7 67
Nakor 2:3c680dd598b7 68 char _direction;
Nakor 2:3c680dd598b7 69
Nakor 2:3c680dd598b7 70
Nakor 2:3c680dd598b7 71 };
Nakor 2:3c680dd598b7 72
Nakor 0:2743c73d648d 73 #endif