新手上路
- 积分
- 40
- 金钱
- 40
- 注册时间
- 2021-2-28
- 在线时间
- 22 小时
|
8金钱
void PS2_ReadData(void)
{
volatile u8 byte=0;
volatile u16 ref=0x01;
CS_L;
PS2_Cmd(Comd[0]); //开始命令
PS2_Cmd(Comd[1]); //请求数据
for(byte=2;byte<9;byte++) //开始接受数据
{
for(ref=0x01;ref<0x100;ref<<=1)
{
CLK_H;
DELAY_TIME;
CLK_L;
DELAY_TIME;
CLK_H;
if(DI)
Data[byte] = ref|Data[byte];
}
delay_us(16);
}
CS_H;
}
关于 Data[byte] = ref|Data[byte]; 这个部分 为啥要或 ref 这个变量啊
ps2的按键都在Date【3】和 Date【4】上 但是每一个Date都对应八个按键 而本身Date也是个u8的数据
如果或上ref的话岂不是始终有两个按键一直处于1 也就是没有被按的状态??
但是把ref|Data[byte]给改成Data[byte]的话 debug读取data的值都是0
|
|