部分代码如下:
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行代码后,直接跳出中断函数,不再执行引导码测试程序。求高手指点。
|