📄 ps_sony.h
字号:
#ifndef __PS_SONY_H__
#define __PS_SONY_H__
#ifdef __cplusplus
extern "C" {
#endif
// write your header here
//Ports operations definitions,change the pins according to the fact,if needed;
// CLK: data saved at negative edge;
#define PS_CLK_UP() GpioDataRegs.GPFDAT.bit.GPIOF0 = 1;
#define PS_CLK_DOWN() GpioDataRegs.GPFDAT.bit.GPIOF0 = 0;
// ATT: chip select signal,low active;
#define PS_ATT_UP() GpioDataRegs.GPFDAT.bit.GPIOF3 = 1;
#define PS_ATT_DOWN() GpioDataRegs.GPFDAT.bit.GPIOF3 = 0;
// CMD: command signal;
#define PS_CMD_UP() GpioDataRegs.GPFDAT.bit.GPIOF2 = 1;
#define PS_CMD_DOWN() GpioDataRegs.GPFDAT.bit.GPIOF2 = 0;
// DATA:
#define PS_DATA_UP() GpioDataRegs.GPFDAT.bit.GPIOF1 == 1?1:0;
//#define PS_DATA_DOWN() GpioDataRegs.GPFDAT.bit.GPIOF1 == 0;
//Command data;
#define STRT 0x01 //开始命令
#define DatReq 0x42 //请求传送数据
//输出数据结构体
//每个字节的具体含义参见光盘中的《PS游戏手柄》文档
struct PSValue {
Uchar ID; //手柄ID
Uchar Arrows; //四个方向键及select,start键。第一数据字节
Uchar FunKey; //"L2" "R2" "L1" "R1" "/\" "O" "X" "|_|"8个功能键键值
Uchar RX; //Right JOY X方向偏移,0x00 = Left 0xFF = Right
Uchar RY; //Right Joy Y方向偏移,0x00 = Up 0xFF = Down
Uchar LX; //Left Joy X方向偏移,0x00 = Left 0xFF = Right
Uchar LY; //Left Joy Y方向偏移,0x00 = Up 0xFF = Down
};
void GetPSValue(struct PSValue *value); //从手柄中串行读取数据的函数;
Uchar Send_Get(Uchar sData); //读取手柄所有数据的函数;
void InitPort_PS(void); // Initialize the port connected to the psx controller;
#ifdef __cplusplus
}
#endif /* extern "C" */
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -