?? 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};
/*=================================================================================
函數(shù)名稱:unit LowTime()
函數(shù)功能:檢測端口低電平的時間
入口參數(shù):無
出口參數(shù):低電平的時間
=================================================================================*/
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;
}
/*=================================================================================
函數(shù)名稱:uint16 HighTime(void)
函數(shù)功能:檢測端口高電平的時間
入口參數(shù):無
出口參數(shù):高電平的時間
=================================================================================*/
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;
}
/*=================================================================================
函數(shù)名稱:void receiving()
函數(shù)功能:receiving data from Remote interface
入口參數(shù):nothing
出口參數(shù):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();
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -