📄 recvdata.c
字号:
#include "recvdata.h"
unsigned char recvdata(void)
{
unsigned char datavalue=0,count=0,temp=1;
bit flag_checked=1,error=0;
if(keyclk==1)
{
return NORECVDATA;
}
/* wait keyclk to high */
while(!keyclk)
{
}
/* check keydata */
if(keydata)
{
return RECVERROR;
}
/* recv data */
datavalue=0;
temp=1;
flag_checked=1;
for(count=0;count<8;count++)
{
delay(4);
keyclk=0;
delay(8);
keyclk=1;
delay(4);
if(keydata)
{
datavalue=datavalue|(temp<<count);
flag_checked=!flag_checked;
}
}
/* recv checkparam */
delay(4);
keyclk=0;
delay(8);
keyclk=1;
delay(4);
if(keydata!=flag_checked)
{
error=1;
}
/* recv stop bit */
delay(4);
keyclk=0;
delay(8);
keyclk=1;
delay(4);
while(!keydata)
{
}
/* send ack */
delay(3);
keydata=0;
delay(1);
keyclk=0;
delay(8);
keyclk=1;
delay(1);
keydata=1;
delay(9);
if(error==1)
{
return RECVERROR;
}
return datavalue;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -