用定时器0的方式1实现第一个发光二极管以200MS间断闪烁,用定时器1的方式1实现数码管前二位59S循环计时时

如果写成嵌套,定时器0中断程序时,定时器1还在走吗?如果在走定时器1的数字显示是一秒间断显示会因为定时器0的中断使得定时器1控制的数码管数字在莫些特定时间点上不是以一秒的间断变化的。这不是和题目要求不符合吗,求指点

定时器0定时器1是独立运行的,与程序嵌套无关,中断溢出与中断服务的运行时间安排不合理有关;其实,你只是控制LED,完全没问题的,因为执行端口输出指令就几个μS而已;追问

用C语言编程的。当二个中断同时到达或者优先级的后到达,低的定时器会保存数据等待优先级的定时器完成然后再输出保存的数据,我这里指的保存数据就是低中断执行到的那一步的数据此时优先级中断开始。在这过程二定时器都还在独立运行,是这意思吧。

追答

是这个意思,
另外给你个思路,只用一个定时器即可,则另一个定时器值可用变量代替;
如定时200mS,定时到,变量加一,加到50次就相当于 1 秒钟了;

追问

只用一个定时器即可,则另一个定时器值可用变量代替,这后半句不是很理解。麻烦你解释下好吗,谢谢啦。

追答

如你需要一个定时器A,定时200mS,一个定时器B,定时1000mS,那么就设个变量C,初始值C=0;
每当定时器A定时到,就在其中断例程里,使变量C增一,当C=5时,就相当于定时器B定时到了(上面说50次是写错了),可以去处理那些本放在定时器B中断例程中的一些关键事务;

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-05-13
这要看定时器中断的优先级的。
1)假如两个定时器中断设置的优先级相同,那么当一个定时器进入中断去处理时,另一个定时器即使到中断条件也只能等第一个中断执行完毕后再执行;
2)假如定时器0优先级高,那么即使定时器1先中断,定时器0达到中断条件时,会挂起定时器1中断转而处理定时器0中断,等定时器0中断处理完继续处理定时器1中断;
3)如果定时器1优先级高,道理同2);
原理是这样。本回答被网友采纳
相似回答