📄 key.bak
字号:
#define uchar unsigned char
#define uint unsigned int
#define k0 18
#define kr 27
#define kl 26
#define km 25
#define slv7290 0x70
#define subkey 0x01
#define subcmd 0x07
#define subdpr 0x10
#define key readbuf[0]
#define keyrp readbuf[1]
#define funkey readbuf[2]
bit editmode=0;
extern bit I2C_Gets(unsigned char SlaveAddr, unsigned char SubAddr, unsigned char Size, char *dat);
extern bit I2C_Puts(unsigned char SlaveAddr, unsigned char SubAddr, unsigned char Size, char *dat);
extern unsigned char scannum;
uchar code mb[]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6,0x00};
uchar i=0;
uchar dpbuf[8];
uchar writebuf[2];
uchar readbuf[3];
long int flag=-1;
void keypd()
{
uchar keynum;
while(I2C_Gets(slv7290,subkey,3,&readbuf)==1);
if(key<=k0)
{
if(flag<7)
flag++;
switch(key)
{
case 1:keynum=1;break;
case 2:keynum=2;break;
case 3:keynum=3;break;
case 4:keynum=4;break;
case 9:keynum=5;break;
case 10:keynum=6;break;
case 11:keynum=7;break;
case 12:keynum=8;break;
case 17:keynum=9;break;
case 18:keynum=0;break;
}
if(editmode==0)
{
writebuf[0]=0x10;
I2C_Puts(slv7290,subcmd,1,&writebuf);
}
dpbuf[i]=keynum;
writebuf[1]=dpbuf[i];
writebuf[0]=0x60+i;
if(editmode)
writebuf[1]|=0x40;
I2C_Puts(slv7290,0x10+flag,1,&mb[flag]);
if(flag>0)
{
scannum++;
I2C_Puts(0x70,0x0d,1,&scannum);
}
I2C_Puts(slv7290,subcmd,2,&writebuf);
}
else
{
if(key==km)
{
editmode=~editmode;
i=0;
}
writebuf[1]=0x00;
if(editmode==1)
{
if(key==kl)
{
if(i<7)
i++;
}
if(key==kr)
{
if(i>0)
i--;
}
writebuf[1]=1;
writebuf[1]<<=i;
}
writebuf[0]=0x70;
I2C_Puts(slv7290,subcmd,2,&writebuf);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -