A class to handle reading, scaling and filtering horizontal and vertical position, and rise/fall interrupts for the button.

Revision:
0:9c486d50434e
Child:
1:e55694d8a418
diff -r 000000000000 -r 9c486d50434e Joystick.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Joystick.h	Tue Sep 28 14:59:57 2010 +0000
@@ -0,0 +1,96 @@
+//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
\ No newline at end of file