[技术问答] 请教M0516定时器1 和3 应该怎么操作才合适?目前无法设置

[复制链接]
1738|5
 楼主| Harvard 发表于 2015-7-5 10:53 | 显示全部楼层 |阅读模式
碰到一个奇怪的问题,现在定时器0和2都可以正常设置工作 .而对1和3的设置都无效;定时器1 ,3 的控制寄存器仍旧维持上电值. 请问这是什么情况??
  1. void Timer2_init(void)
  2. {
  3.     _TIMER_RESET(TIMER2);

  4.     TIMER2->TCSR = TIMER_TCSR_CEN_Msk | TIMER_TCSR_IE_Msk | TIMER_TCSR_MODE_PERIODIC | TIMER_TCSR_TDR_EN_Msk |
  5.                       TIMER_TCSR_PRESCALE(22);
  6.     TIMER2->TCMPR = 10;             //定时时长 timerover us
  7.     NVIC_EnableIRQ(TMR2_IRQn);
  8.         _TIMER_CLEAR_CMP_INT_FLAG(TIMER2);
  9. }

  10. void TMR0_Init(void)
  11. {

  12.     TIMER0->TCSR = TIMER_TCSR_INIT_IE(22);
  13.     TIMER0->TCMPR = 2000; //定时器最小间隔为1us,定时2000,即为间隔2ms一次

  14.     /* 使能TMR0中断 */
  15.     NVIC_EnableIRQ(TMR0_IRQn);
  16. }
  17. void TMR1_Init(void)
  18. {

  19.     TIMER1->TCSR = TIMER_TCSR_INIT_IE(22);
  20.     TIMER1->TCMPR = 2000; //定时器最小间隔为1us,定时2000,即为间隔2ms一次

  21.     /* 使能TMR0中断 */
  22.      NVIC_EnableIRQ(TMR1_IRQn);
  23. }
  24. void TMR3_Init(void)
  25. {   
  26.   

  27.     _TIMER_RESET(TIMER3);        

  28.      TIMER3->TCMPR = 100000;

  29.      TIMER3->TCSR =  TIMER_TCSR_MODE_CONTINUOUS | TIMER_TCSR_TDR_EN_Msk | TIMER_TCSR_PRESCALE(22);   

  30. }


用nulink在线调试后发现,TIMER1 和TIMER3的TCSR值还是上电状态. 而TIMER0 TIMER2,的设置却正常;

查看了bsp自带的timer例程,他4个定时器都用到了.单步调试发现 ,他的各个寄存器都是正常的, 是不是我的写法有问题?
 楼主| Harvard 发表于 2015-7-5 11:20 | 显示全部楼层
自己沙发一下 .解决了. 大意了 原来是timer的时钟没有使能, 所以那些tcsr设置不了
依葫芦画瓢 添入就可以了
    SYSCLK->APBCLK =    SYSCLK_APBCLK_ADC_EN_Msk | SYSCLK_APBCLK_PWM23_EN_Msk | SYSCLK_APBCLK_TMR2_EN_Msk | SYSCLK_APBCLK_TMR0_EN_Msk
                                             | SYSCLK_APBCLK_TMR3_EN_Msk | SYSCLK_APBCLK_TMR1_EN_Msk     | SYSCLK_APBCLK_WDT_EN_Msk;
史迪威将军 发表于 2015-7-5 21:14 | 显示全部楼层
是不是0和1复用呢。。。
 楼主| Harvard 发表于 2015-7-5 21:25 | 显示全部楼层
没有复用.
仙女山 发表于 2015-7-6 14:03 | 显示全部楼层
Harvard 发表于 2015-7-5 11:20
自己沙发一下 .解决了. 大意了 原来是timer的时钟没有使能, 所以那些tcsr设置不了
依葫芦画瓢 添入就可以 ...

谢谢楼主的及时分享,效率太高了
 楼主| Harvard 发表于 2015-7-8 23:44 | 显示全部楼层
哈哈. 希望对和我一样 没有正确注意操作要领的朋友 有用.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

74

主题

1732

帖子

21

粉丝
快速回复 在线客服 返回列表 返回顶部