找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1907|回复: 0
打印 上一主题 下一主题
收起左侧

C51单片机红外中断处理

[复制链接]
跳转到指定楼层
楼主
ID:208445 发表于 2017-8-24 09:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
// 红外中断初始化,采用外部中断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,但来不及处理,那么进入中断的次数会怎么变,会丢弃几次吗?还是等待,排队,然后一个个进入中断函数?

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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