打印

红外遥控引导码计算问题?

[复制链接]
1178|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jzfbbs|  楼主 | 2014-10-21 22:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
部分代码如下:
void int0_init( )//外部中断0初始化
{
   IT0=1;//下降沿触发方式
   EX0=1;
   EA=1;
}

void t0( ) interrupt 1//定时器中断函数.  定时时间:0.256ms{
  irtime++;
}

void int0( ) interrupt 0//外部中断0函数{
   if(flag==1)
   {
      if(irtime>32&&irtime<63)
      bitnum=0;
      irdate[bitnum]=irtime;
      irtime=0;
      bitnum++;
      if(bitnum==33)
      {
        bitnum=0;
        irok=1;
      }
   }
   else
   {
     irtime=0;
     flag=1;
   }
}

  红外遥控的引导码为:9MS的低电平+4.5MS的高电平组成。假设9MS的下降沿触发外部中断,进入中断函数。首先执行
else
   {
     irtime=0;
     flag=1;
   }   

  执行完2行代码后,直接跳出中断函数,不再执行引导码测试程序。求高手指点。

相关帖子

沙发
jzfbbs|  楼主 | 2014-10-21 22:23 | 只看该作者
重传代码,大括号丢了。
void int0_init()
{
   IT0=1;
   EX0=1;
   EA=1;
}
void t0() interrupt 1
{
  irtime++;
}
void int0() interrupt 0
{
   if(flag==1)
   {
      if(irtime>32&&irtime<63)
      bitnum=0;
      irdate[bitnum]=irtime;
      irtime=0;
      bitnum++;
      if(bitnum==33)
      {
        bitnum=0;
        irok=1;
      }
   }
   else
   {
     irtime=0;
     flag=1;
   }
}
红外遥控的引导码为:9MS的低电平+4.5MS的高电平组成。假设9MS的下降沿触发外部中断,进入中断函数。首先执行
else
   {
     irtime=0;
     flag=1;
   }   

  执行完2行代码后,直接跳出中断函数,不再执行引导码测试程序。求高手指点。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

112

主题

387

帖子

3

粉丝