关于单片机外部中断的疑问(51)

大家好,我想请教几个关于单片机外部中断的问题,由衷的感谢大家
第一,我的外部中断0设定为跳变沿触发,如果来了一次下降沿,在处理中断函数的过程中,又来了一次下降沿,这时怎么办?是同样一个中断。这个问题源于一个关于红外遥控的程序,他的意思就是用一次中断来收集共33位数据,可是33个数据,应该有33次下降沿啊, 于是我就有了这样的问题,希望大家能帮我解释一下
第二,在中断函数执行过程中,如果某一条指令没有达到我要的条件,我希望退出这个中断,于是我写了一个return在里面,那为什么这个时候同时还需要写一个EX0=0在里面呢?这个不是硬件自动会清零吗?

第1个回答  2014-05-09
第一,我的外部中断0设定为跳变沿触发,如果来了一次下降沿,在处理中断函数的过程中,又来了一次下降沿,这时怎么办?
--处理函数,不宜过长,中断频率,不宜过高。
--尽量避免这种现象出现。

是同样一个中断。这个问题源于一个关于红外遥控的程序,他的意思就是用一次中断来收集共33位数据,可是33个数据,应该有33次下降沿啊, 于是我就有了这样的问题,希望大家能帮我解释一下
--中断一次,计一次数。
--当前是第几次中断,这就知道了。

第二,在中断函数执行过程中,如果某一条指令没有达到我要的条件,我希望退出这个中断,于是我写了一个return在里面,那为什么这个时候同时还需要写一个EX0=0在里面呢?这个不是硬件自动会清零吗?
--EX0=0,是关闭外部中断0。
--你为什么要写EX0=0在里面呢?
--如果,你不想要继续接受中断了,就可以这样写。
相似回答