Control library for the Sparkfun Entertainment Trackballer breakout board.
Diff: trackballer.h
- Revision:
- 0:2743c73d648d
- Child:
- 1:0129b1984b5a
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/trackballer.h Sat Feb 19 19:14:01 2011 +0000 @@ -0,0 +1,110 @@ +/* This library is for Sparkfun Entertainment's Trackballer breakout board. + * The board consists (mainly) of the trackball, 4 hall effect sensors, some magnets (obviously), + * a button, and 4 leds (white, red, green, blue). + * + * This library (trackballer) by Aaron Goselin. + * 2010 Aaron Goselin. + * + * You are free to use this as you like, but I would prefer credits stay in tact. + * + */ + +#ifndef _TRACKBALLER_ +#define _TRACKBALLER_ + +#include "mbed.h" +//#include "PinDetect_m.h" + +#define TRACK_INC 0.02 + + +/** The 7fold game is a simple number game. 7 slots (horizontally) are filled one + * at a time with numbers 1 through 7. If the number of digits vertically or horizontally + * add up to the value of a digit in that row (that are touching) then those digits are removed. + * + * This uses the serially controlled uOLEDs by 4D Systems. + * + * This is a private library written by Aaron Goselin. While this may change in the future, + * in the case of accidental posting to the internet in general, use of this library by an + * individual or organization other than Aaron Goselin is prohibited. + * + * Example: + * @code + * // Draw text on the screen. + * // Accessing from main() + * #include "mbed.h" + * #include "uOLED.h" + * #include "uOLED_watch.h" + * #include "games/7fold/7fold.h" + * + * uOLED SGC(p9, p10, p11); + * uOLED_watch watch(&SGC); + * 7fold 7fold(); + * + * int main() + * { + * // Draws 7fold main menu. + * monkey.draw7foldMainMenu(); + * } + * @endcode + */ +class trackballer { + +public: + + + + /** Create an instance of the 7fold class. + * + * Accepts a pointer to the 7fold class. + * + * Example: + * @code + * uOLED_menus menus(&SGC, &watch); + * @endcode + */ + trackballer(PinName button, PinName right, PinName down, PinName left, PinName up, PinName red, PinName green, PinName blue, PinName white); + + void getDirection(float &xPosition, float &yPosition); + + + + +protected: + Timer _outputTimer; + + DigitalIn * _buttonPin; + DigitalIn * _rightPin; + DigitalIn * _downPin; + DigitalIn * _leftPin; + DigitalIn * _upPin; + + PwmOut * _redLED; + PwmOut * _greenLED; + PwmOut * _blueLED; + PwmOut * _whiteLED; + + int _buttonPushCounter; // counter for the number of button presses + + char _buttonState; // current state of the button + char _lastButtonState; // previous state of the button + + char _upState; + char _downState; + char _leftState; + char _rightState; + char _lastUpState; + char _lastDownState; + char _lastLeftState; + char _lastRightState; + + float _xPosition; + float _yPosition; + + + char _direction; + + +}; + +#endif \ No newline at end of file