📄 epmain.c
字号:
#include"mytype.h"
#include"d12_command.h"
#include"regx51.h"
#include"uar.h"
#include"key.h"
uint8 idata buffer[16];
uint8 idata InBuffer[16];
extern volatile uint8 idata KeyCurrent,KeyOld,KeyNoChangedTime;
extern volatile uint8 idata KeyPress;
extern volatile uint8 idata KeyDown,KeyUp,KeyLast;
extern volatile uint8 KeyCanChange;
void dma_eot(void)
{;
}
void ep1_in(void)
{}
void ep1_out(void)
{}
void ep2_in(void)
{uint8 i;
// Prints("端点2输入.\r\n");
for(i=0;i<4;i++)
{
InBuffer[i]=0;
}
KeyCanChange=0; //禁止修改按键值
if((KeyPress&(~0xC0))||(KeyUp&0xC0)||KeyDown&0xC0) //如果有按键按住或者有按键值变化
{
KeyUp=0;
KeyDown=0;
if(KeyPress&KEY1) //往左移(X减小)
{
InBuffer[1]=-1;
}
else
{
}
if(KeyPress&KEY2) //往右移(X轴增加)
{
InBuffer[1]=1;
}
else
{
}
if(KeyPress&KEY3) //往上移(Y减小)
{
InBuffer[2]=-1;
}
else
{
}
if(KeyPress&KEY4) //向下移(Y轴增加)
{
InBuffer[2]=1;
}
else
{
}
if(KeyPress&KEY5) //滚轮下滚
{
InBuffer[3]=-1;
}
else
{
}
if(KeyPress&KEY6) //滚轮上滚
{
InBuffer[3]=1;
}
else
{
}
if(KeyPress&KEY7) //左键
{
InBuffer[0]|=0x01;
}
else
{
}
if(KeyPress&KEY8)
{
InBuffer[0]|=0x02; //右键
}
else
{
}
/*
//EDN USB板键盘不够,没有中键
if(KeyMapOk&(1<<1)) //中键
{
InBuffer[0]|=0x04;
}
else
{
}
*/
//返回4个字节数据
write_endpoint_buff(5,4,InBuffer);
}
else //如果无按键按下或者按键动作,则不返回数据
{
}
KeyCanChange=1; //允许修改按键值
}
void ep2_out(void)
{ uint8 i,j;
j=read_endpoint_buff(4,16,buffer);
P2=~buffer[0];
Prints("端点2输出.\r\n");
Prints(" 端点2的数据是 ");
for(i=0;i<j;i++)
{
PrintHex(buffer[i]);
if(i==16)Prints("\r\n");
}
Prints("\r\n");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -