回复【9楼】 wyudcl :
---------------------------------
在另外一个贴回复你了
用联合体+结构体的方式
[mw_shl_code=c,true]//FC游戏手柄数据格式定义
//1,表示没有按下,0表示按下.
typedef union _FC_GamePad_TypeDef
{
u8 ctrlval;
struct
{
u8 a:1; //A键
u8 b:1; //B键
u8 select:1;//Select键
u8 start:1; //Start键
u8 up:1; //上
u8 down:1; //下
u8 left:1; //左
u8 right:1; //右
}b;
}FC_GamePad_TypeDef ;
extern FC_GamePad_TypeDef fcpad; //fc游戏手柄[/mw_shl_code]
以上,就是一个u8的类型定义.
使用方法:
[mw_shl_code=c,true]//data:得到的Select/Start键数据
//数据格式如下:
//data:b4,b5有效.
//b4=1,Select键按下
//b5=1,Start键按下
void GAMEPAD_nFun_Decode(u8 data)
{
if(data&0X10)fcpad.b.select=1; //Select键按下
else fcpad.b.select=0; //Select键松开
if(data&0X20)fcpad.b.start=1; //Start键按下
else fcpad.b.start=0; //Start键松开
}
[/mw_shl_code]
|