📄 remote_detect.c
字号:
/*=================================================================================
文件名:Remote_detect.c
说 明:
=================================================================================*/
#include"Remote_detect.h"
uint8 a[4];
uint8 ASCII[16]={48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70};
/*=================================================================================
函数名称:unit LowTime()
函数功能:检测端口低电平的时间
入口参数:无
出口参数:低电平的时间
=================================================================================*/
uint16 LowTime(void)
{
uint16 Num0;
PITMTLD0 = 32-1;
PITLD0 = 0xffff;
PITCE_PCE0 = 1;
while(PORTE_PE0 == 0);
Num0 = PITCNT0;
PITCE_PCE0 = 0;
return 65535-Num0;
}
/*=================================================================================
函数名称:uint16 HighTime(void)
函数功能:检测端口高电平的时间
入口参数:无
出口参数:高电平的时间
=================================================================================*/
uint16 HighTime(void)
{
uint16 Num1;
PITMTLD0 = 32-1;
PITLD0 = 0xffff;
PITCE_PCE0 = 1;
while(!PORTE_PE0 == 0);
Num1 = PITCNT0;
PITCE_PCE0 = 0;
return 65535-Num1;
}
/*=================================================================================
函数名称:void receiving()
函数功能:receiving data from Remote interface
入口参数:nothing
出口参数:nothing
==================================================================================*/
void receiving(void)
{
uint8 i,j,num1;
uint16 num;
while(1)
{
restart:
while(PORTE_PE0); //waite receiving
num = LowTime(); //detect low time
if(num<8500||num>9500) //
continue;
num = HighTime(); //detect hight time
if(num<4000||num>5000)// hight time
continue;
for(i=0;i<4;i++) //four size data receiving
{
for(j=0;j<8;j++) //eight bit data receiving
{
num = LowTime();
if(num<400||num>700)
goto restart;
num = HighTime();
if(num<400||num>2000)
goto restart;
num1>>=1;
if(num>1120) //if beyound 1120,the result bit as enable ,other result bit as disable
num1|=0x80;
}
a[i] = num1; //momery one size
}
Write_Cmd(0x80);
Write_Data(ASCII[a[0]/16]);
Write_Data(ASCII[a[0]%16]);
Write_Data(ASCII[a[1]/16]);
Write_Data(ASCII[a[1]%16]);
Write_Data(ASCII[a[2]/16]);
Write_Data(ASCII[a[2]%16]);
Write_Data(ASCII[a[3]/16]);
Write_Data(ASCII[a[3]%16]);
Display_ADValue();
Beep();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -