本帖最后由 szshawn2010 于 2010-1-26 15:30 编辑
一直玩的都是 8位的芯片.
对中断的问题,也只是略懂.看到LZ发问,就有点技痒.说的不对,别拍我
好多芯片 堆栈等级也就是五级或四级.
这就意味着,如果 中断同时出的话,多过了五个或四个那么会致使MCU堆栈混乱的.因此编程员会严格处理这方面的需求
同时,中断会有等级的优先次序. 一般是可以自已设定的.
当中断时,又有中断发生.应该是按中断的优先等级进行嵌套的.
如果是同一类别的中断,在中断过程中再次发生中断,是很少有不可能的.通常每一次的中断发生,其相关的标志位会置1或清零.中断子程序结束时,软件进行清零或置1.
-----------
而且楼主的假设又好像很难成立.除非,你的中断子程序使用死循环.假设一条指令的时间是2uS,那么1mS就是500条指令,2ms就是1000条指令.除非你不停的跳不停的循环.2mS是什么概念呢?通常一次按键防抖延时也要20ms.也就是说,你随便一个按键,完整的过程至少要有60mS.用人的感觉来看,60ms一瞬间,MCU已经运行了3000条指令.况且MCU的ROM也不过1K或几K,换句话说,也不过1000多条指令或几千条指令.(仅限8位的消费类MCU)
|