来自EEWORLD合作群 群主:wangkj
比如,我的中断程序为1MS一次中断,我的中断程序里头呢,有个3MS的掩饰,这个时候,会发生什么情况?
你的意思,他先执行延时,然后在执行中断里头的1MS相应?
比如,我的中断是MS++ ++到6时,执行中断里头的程序 就是延时,我的延时为20MS
你加了延时,这时你这个中断还没执行完,下一个中断又来了,那么会影响下一个中断的及时响应
我觉得会出现漏掉某些东西
你的意思是,他先执行完了延时,然后才响应下一个MS++?
可是,我刚才又想了一下,中断是硬件中断的。也就是说他应该先响应MS++,然后才继续执行刚才没有执行完的程序啊
在执行中断程序是 下一次中断来应该不会有中断反应?
这部分程序,都在我的中断程序里头,并不是说这个延时是在主函数里头
他应该先响应MS++,然后才继续执行刚才没有执行完的程序啊
除非有更高优先级中断出现
你的意思是,他先执行20MS的延时,然后才MS++?
回复 楼主 舍我其谁 的帖子
看ISR里面有没有关中断了
回复 14楼 舍我其谁 的帖子
你说的是外部中断?还是内部实时中断?内部实时中断,你设定的是1ms,他1ms肯定重新进中断,不管你有没有执行完上一次中断,既然你1ms执行不完,也就是说下次中断来时本次中断会转向新的中断。一直都不会执行之前的中断,虽然说嵌套了,当然有没有嵌套跟硬件还有关系。
外部中断也有很多种,进中断之后你是否屏蔽中断?要是进中断了你屏蔽了中断,那么中断执行外之前,该中断口不会响应下次中断。要是进中断后没有屏蔽该中断口的中断使能,则有外部中断则立刻执行当前中断。同上,你永远出不了这个中断嵌套。当然具体跟硬件的结构有关。
我感觉是这样的吧,对cpu具体怎么工作不是十分了解
LZ翻翻书,看看你的中断的硬件流程是什么样的,再看看你的软件怎么做的,比如硬件上中断标志是不是自动清除,软件上,ISR中有没有关中断,还有,硬件上,中断能嵌套几层(硬件堆栈是很有限的哦)
试一下就知道了吧
试一下不就知道了吗,不同的处理器可能会有不同的结果吧