智能车制作

标题: 定时器程序 [打印本页]

作者: zhengz    时间: 2009-9-17 15:33
标题: 定时器程序
本帖最后由 chenrunshe_007 于 2009-11-16 17:27 编辑

大家好,我编了一个输出比较的定时器程序,发现程序进了几次中断之后,会自动停止运行,好奇怪啊,大家帮我看下哈

  1. #include <hidef.h>      /* common defines and macros */
  2. #include <mc9s12hy64.h>
  3. #pragma LINK_INFO DERIVATIVE "mc9s12hy64"
  4. void Configure_Ports(); //引脚配置
  5. void CPMU_PEE_4Hz();
  6. void timer0_init();
  7. unsigned int n=0;
  8. unsigned int m=0;
  9. void main(void)
  10. {
  11. DisableInterrupts;
  12. Configure_Ports();
  13.   timer0_init();
  14.    for(;;)
  15.       {
  16.         EnableInterrupts;
  17.       }
  18. }
  19. void Configure_Ports(void)
  20. {
  21.   PTU   = 0x00;     // port data  
  22. DDRU  = 0xFF;     //设为输出
  23. }
  24.      
  25. void timer0_init(void)//定时器初始化
  26. {
  27.    TIM0_TSCR2_PR   =0x07;  //prescale factor is 128,4M/128次每秒
  28.    TIM0_TIOS=0x20;// 5通道设为输出比较模式
  29.    TIM0_TC5=0x30D4;//定时50ms
  30.    TIM0_TSCR2_TOI=1;   //定时器中断溢出使能
  31.    TIM0_TIE=0x20;//定时器中断使能
  32.    TIM0_TSCR1_TEN=1;     //Timer enable
  33.    TIM0_TFLG1=0xFF;
  34.   TIM0_TSCR1_TFFCA=1;
  35.    
  36. }
  37. #pragma CODE_SEG __NEAR_SEG NON_BANKED//定时器中断
  38. interrupt 13 void timer1overflow(void)   //1s
  39. {
  40.   DisableInterrupts;
  41.   m=TIM0_TCNT;
  42.   TIM0_TC5=m+0x30D4;
  43.   n++;
  44.   PTU=~PTU;
  45.    }
复制代码

作者: zhengz    时间: 2009-9-22 17:30
自问自答,把TIM0_TSCR2_TOI=1;   去掉就o了
作者: justing88    时间: 2009-11-5 21:40
好的,我正好看,觉得网上资料太少了
作者: chiusir    时间: 2009-11-5 21:45
//~~~~~~~~~~~~~~~~~~~~GOOD
作者: chenrunshe_007    时间: 2009-11-16 17:27
自问自答,把TIM0_TSCR2_TOI=1;   去掉就o了
zhengz 发表于 2009-9-22 17:30

很好很好,我当年也是这样自问自答过来的
作者: zwluoqi    时间: 2010-3-11 20:40
恩 不错  我搜寻了半天 谢谢~!
作者: haoming198806    时间: 2010-3-13 10:18
很好
作者: shenxueli    时间: 2010-3-15 14:56
hao de
作者: gabbro    时间: 2010-3-15 21:14
不错
作者: zhshuai1    时间: 2010-3-20 00:08
分享万岁!!
作者: fbhsy    时间: 2010-3-22 22:19
可以嘛
作者: 下一年的我    时间: 2010-4-8 22:30
谢谢
作者: nigel1946    时间: 2010-4-12 20:53

作者: 零点漂移    时间: 2010-7-19 14:09
TIM0_TC5=m+0x30D4;

这句是来控制定时器溢出中断时间的吗?
作者: pb2825374    时间: 2010-7-22 14:36
好的
作者: pika    时间: 2010-9-6 11:12
很好很好,我当年也是这样自问自答过来的
chenrunshe_007 发表于 2009-11-16 17:27



    同自问自答。。。
作者: danyili    时间: 2010-9-6 13:30
呵呵
你们的回答太逗了
作者: pk505867092    时间: 2010-9-9 22:56
好东西
作者: xueyaping    时间: 2010-11-9 16:14
ding
作者: 小鑫    时间: 2011-1-21 20:50

作者: I08690127    时间: 2011-2-15 12:20
TIM0_TSCR2_PR   =0x07;  //prescale factor is 128,4M/128次每秒
   TIM0_TIOS=0x20;// 5通道设为输出比较模式
   TIM0_TC5=0x30D4;//定时50ms

怎么算的,我觉得应该4M得16分频(   TIM0_TSCR2_PR   =0x04 ) 才对吧??
作者: I08690127    时间: 2011-2-15 12:21
TIM0_TSCR2_PR   =0x07;  //prescale factor is 128,4M/128次每秒
   TIM0_TIOS=0x20;// 5通道设为输出比较模式
   TIM0_TC5=0x30D4;//定时50ms

怎么算的,我觉得应该4M得16分频(   TIM0_TSCR2_PR   =0x04 ) 才对吧??
作者: 自行车倒骑    时间: 2011-2-15 15:52
。。。
作者: 思妙婷    时间: 2012-3-16 12:21
聪明,佩服!

作者: 蝴蝶树az    时间: 2012-3-27 16:03
......................

作者: yangsongbao    时间: 2012-5-12 10:46

作者: 夏唯夕    时间: 2012-12-31 20:13





欢迎光临 智能车制作 (http://111.231.132.190/) Powered by Discuz! X3.2