プレステ1アナログコントローラ用ライブラリのサンプル

Dependencies:   mbed-src

Revision:
0:ab4722670dd8
Child:
3:3a33f8294a84
diff -r 000000000000 -r ab4722670dd8 pspad.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pspad.h	Mon Sep 09 06:30:27 2013 +0000
@@ -0,0 +1,132 @@
+/*
+ * pspad.h
+ *
+ *  Created on: 2012/12/21
+ *      Author: USER
+ */
+
+#ifndef PSPAD_H_
+#define PSPAD_H_
+
+/*--------PSPADのアクセスの構造体-------
+PS--.PsRead()
+|---.right_x
+|---.right_y
+|---.left_x
+|---.left_y;
+|---.VIBRATE;
+|---.ANALOG_MODE;
+|---.BUTTON .WORD
+|       |---.BIT.L2
+|             |-.R2
+|             |-.L1
+|             |-.R1
+|             |-.SANKAKU
+|             |-.MARU
+|             |-.BATU
+|             |-.SIKAKU
+|             |-.SELECT
+|             |-.L3
+|             |-.R3
+|             |-.START
+|             |-.UP
+|             |-.RIGHT
+|             |-.DOWN
+|             --.LEFT
+----.PERV--.right_x
+       |---.right_y
+       |---.left_x
+       |---.left_y;
+       ----.BUTTON .WORD
+               |---.BIT.L2
+                     |-.R2
+                     |-.L1
+                     |-.R1
+                     |-.SANKAKU
+                     |-.MARU
+                     |-.BATU
+                     |-.SIKAKU
+                     |-.SELECT
+                     |-.L3
+                     |-.R3
+                     |-.START
+                     |-.UP
+                     |-.RIGHT
+                     |-.DOWN
+                     --.LEFT
+---------------------------------------*/
+
+//-------------------------------------------------------------------------
+// Class
+//-------------------------------------------------------------------------
+class Pspad
+{
+public:
+    Pspad(PinName dat, PinName cmd, PinName sel, PinName clk);
+    void PsRead(void);
+
+    union {
+        uint32_t WORD;
+        struct {
+            unsigned char L2       :1;
+            unsigned char R2       :1;
+            unsigned char L1       :1;
+            unsigned char R1       :1;
+
+            unsigned char SANKAKU  :1;
+            unsigned char MARU     :1;
+            unsigned char BATU     :1;
+            unsigned char SIKAKU   :1;
+
+            unsigned char SELECT   :1;
+            unsigned char L3       :1;
+            unsigned char R3       :1;
+            unsigned char START    :1;
+
+            unsigned char UP       :1;
+            unsigned char RIGHT    :1;
+            unsigned char DOWN     :1;
+            unsigned char LEFT     :1;
+        } BIT;
+    } BUTTON;
+    int8_t right_x, right_y, left_x, left_y;
+    unsigned char VIBRATE;
+    unsigned char ANALOG_MODE;
+    struct {
+        union {
+            uint32_t WORD;
+            struct {
+                unsigned char L2       :1;
+                unsigned char R2       :1;
+                unsigned char L1       :1;
+                unsigned char R1       :1;
+
+                unsigned char SANKAKU  :1;
+                unsigned char MARU     :1;
+                unsigned char BATU     :1;
+                unsigned char SIKAKU   :1;
+
+                unsigned char SELECT   :1;
+                unsigned char L3       :1;
+                unsigned char R3       :1;
+                unsigned char START    :1;
+
+                unsigned char UP       :1;
+                unsigned char RIGHT    :1;
+                unsigned char DOWN     :1;
+                unsigned char LEFT     :1;
+            } BIT;
+        } BUTTON;
+        int8_t right_x, right_y, left_x, left_y;
+    } PREV;
+
+private:
+    uint8_t PsComm(uint8_t send_data);
+    Timer tm;
+    DigitalIn  datpin;
+    DigitalOut cmdpin;
+    DigitalOut selpin;
+    DigitalOut clkpin;
+};
+
+#endif /* PSPAD_H_ */