单片机如何用一个定时器设置两个定时

我想用一个定时器设置两个定时。用的if语句,但是第二个if语句因为判断条件不符合为0根本完全给跳过去了,怎么办?怎么才能让他不跳过去呢

  两个定时器使用没有什么特殊设置,但是有一个经验必须明白,中断里面重新对定时器赋值的操作必须放在中断处理的头端,否则会有一个整个中断处理的时间延时。如:
  void timer1()interupt3 using1
  {
  ... //如果这里的...程序段太长,那么每次中断就慢了处理这段程序的时间
  TH1=0X..
  TL1=0X..
  ... //如果把处理程序放在这里,那么慢的是2个指令周期(重载)
  }
  所以时间要求特别严格的程序,一般建议使用方式2自动载入。
  可以同时运行,但存在优先级问题,即如果中断同时发生,先执行优先级的。
  如果有一个中断已经在执行,则其他中断发生时也不会执行。
  可以 通过设置中断优先寄存器IP,使选的中断可以在其他中断还没完成时,发生二次中断。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-05-09
定一个所需要两个定时的公约数,搞定本回答被提问者采纳
相似回答