プレステ1アナログコントローラ用ライブラリのサンプル
pspad.h
- Committer:
- kurt
- Date:
- 2013-09-09
- Revision:
- 1:38674ebae5dc
- Parent:
- 0:ab4722670dd8
- Child:
- 3:3a33f8294a84
File content as of revision 1:38674ebae5dc:
/* * 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_ */