请选择 进入手机版 | 继续访问电脑版

普中开源电子分享网

 找回密码
 立即注册
搜索
查看: 1789|回复: 0

红外通信程序问题,中断部分

[复制链接]

5

主题

7

帖子

244

积分

中级会员

Rank: 3Rank: 3

积分
244
发表于 2021-4-10 22:45:33 | 显示全部楼层 |阅读模式
void ReadIr() interrupt 0
{
        u8 j,k;
        u16 err;
        Time=0;                                         
        delay(700);       
        if(IRIN==0)               
        {         
               
                err=1000;                               
               
                while((IRIN==0)&&(err>0))                        
                {                       
                        delay(1);
                        err--;
                }
                if(IRIN==1)                       
                {
                        err=500;
                        while((IRIN==1)&&(err>0))               
                        {
                                delay(1);
                                err--;
                        }
                        for(k=0;k<4;k++)               
                        {                               
                                for(j=0;j<8;j++)       
                                {

                                        err=60;               
                                        while((IRIN==0)&&(err>0))
                                        {
                                                delay(1);
                                                err--;
                                        }
                                        err=500;
                                        while((IRIN==1)&&(err>0))         
                                        {
                                                delay(10);         //0.1ms
                                                Time++;
                                                err--;
                                                if(Time>30)
                                                {
                                                        return;
                                                }
                                        }
                                        IrValue[k]>>=1;       
                                        if(Time>=8)                       
                                        {
                                                IrValue[k]|=0x80;
                                        }
                                        Time=0;                                                               
                                }
                        }
                }
                if(IrValue[2]!=~IrValue[3])
                {
                        return;
                }
        }                       
}
当IRIN==1后,为什么第一个if条件语句不会跳出,就是if(IRIN==0),程序还是在里面执行。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

Archiver|手机版|小黑屋|普中开源电子分享网 粤ICP备16123577号-2

GMT+8, 2024-3-29 20:36 , Processed in 0.086953 second(s), 30 queries .

Powered by 论坛搭建 X3.4

Copyright © 2001-2021, Tencent Cloud.

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