标题:
C51单片机红外中断处理
[打印本页]
作者:
sirius2015
时间:
2017-8-24 09:53
标题:
C51单片机红外中断处理
// 红外中断初始化,采用外部中断1的下降沿有效,引发中断
void InitInfrared()
{
IR_INPUT = 1;
IT1 = 1;
EX1 = 1;
}
// 红外的中断处理程序
void EXINT1_ISR() interrupt 2
{
// 设置中断发生了FLAG
irflag = 1;
// 清中断标志位
IE1 = 0;
}
问题:
1.红外中断处理函数是 ,只要是引脚IR_INPUT电平从1变成0都会进入这个中断函数吗?
因为一个红外数据,(NEC格式的)有引导码+用户码+用户反码+键值码+键值反码,所以遥控器按下一个键,会引起30几次的电平从1变成0.
这个函数会进入30多次吗
2.如果EXINT1_ISR()里面,要处理的东西比较多。比如,每一次处理要10ms
那么遥控器按下一个键的时候,假如会有30几次的电平从1变到0,但来不及处理,那么进入中断的次数会怎么变,会丢弃几次吗?还是等待,排队,然后一个个进入中断函数?
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1