找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

关于红外解码出现错误的问题

[复制链接]
admin 发表于 2012-9-2 13:36:33 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
void int0(void) interrupt 0
{

EA=0;
for(k=0;k<10;k++)
{
Delay0_9ms();
if (IRDATA==1) //如果0.9ms后IRDATA=0,说明不是引导码
{
k=10;
break;
}
else if(k==9) //如果持续了10×0.9ms=9ms的di电平,说明是引导码
{
while(IRDATA==0);
Delay4_5ms(); //跳过持续4.5ms的gao电平

for(i=0;i<4;i++) //分别读取4个字节
{
for(j=1;j<=8;j++) //每个字节8个bit的判断
{
while(IRDATA==0); //等待上升沿
Delay0_9ms(); //从上升沿那一时刻开始延时0.9ms,再判断IRDATA
if(IRDATA==1) //如果IRDATA是"1",则向右移入一位"1"
{
Delay1ms();
CodeTemp=CodeTemp|0x80;
if(j<8) CodeTemp=CodeTemp>>1;
}
else if(j<8)
CodeTemp=CodeTemp>>1;//如果IRDATA是"0",则向右移一位,自动补"0"
}
hongwaicode[i]=CodeTemp;
CodeTemp=0;
biaozhi=1;
}

}
}
这是鄙人做的一个32位红外解码的程序,不过在液晶上显示编码时为何会出现FFFFFFFF的情况,出现这种情况挺频繁的,说明这个程序有缺陷还请高手指点一下是哪里有问题了
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-11-25 02:46 , Processed in 0.055922 second(s), 10 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表