现在正在做一个用C51单片机模拟2272的解码程序,用的普通IO口循环检测进行,的找的论坛里的代码,但是怎么也调试不通,坛子里有人有模拟解码的代码能共享下吗?或者帮忙看看下面的代码哪里有错误啊,万分感谢大家了
#include "315MHz.h"
#define uchar unsigned char
#define uint unsigned int
bit bdata recv_flg = 0;//bit right or fault
bit bdata lianji_flg = 0; //long or short(1,0)
void d40us(uchar n) //40us delay
{
uchar data i,j;
for(j=n;j>0;j--)
{
for(i=100;i>0;i--)
_nop_();
}
}
unsigned long decode(void)
{
unsigned long DATA;
unsigned char i,count;
DATA = 0;
for(count=0;count<25;count++)
{
i=0;
while(Rx_315&(1))
{
d40us(1);
i++;
if (i>45) goto end;
}
DATA*=2;
if(i<12) //·Ö±æ¸ßµÍ
{
if (!((i<12)&&(i>5))) goto end;//µçƽºÏ·¨
DATA+=0;
}
else
{
if (!((i>24)&&(i<32))) goto end;
DATA+=1;
}
//while (!(Rx_315&(1))) //µÍλ¼ÆÊý
//{
//d40us(1);
//i++;
//if (i>40) goto end; //ÏÞʱ½âÂë
//else break;
//}
//if (i<3) goto end; //¶Ô±È¿í¶È
}
return DATA;
end:
return 0;
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>