Control library for the Sparkfun Entertainment Trackballer breakout board.

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