碰到一个奇怪的问题,现在定时器0和2都可以正常设置工作 .而对1和3的设置都无效;定时器1 ,3 的控制寄存器仍旧维持上电值. 请问这是什么情况??
- void Timer2_init(void)
- {
- _TIMER_RESET(TIMER2);
- TIMER2->TCSR = TIMER_TCSR_CEN_Msk | TIMER_TCSR_IE_Msk | TIMER_TCSR_MODE_PERIODIC | TIMER_TCSR_TDR_EN_Msk |
- TIMER_TCSR_PRESCALE(22);
- TIMER2->TCMPR = 10; //定时时长 timerover us
- NVIC_EnableIRQ(TMR2_IRQn);
- _TIMER_CLEAR_CMP_INT_FLAG(TIMER2);
- }
- void TMR0_Init(void)
- {
- TIMER0->TCSR = TIMER_TCSR_INIT_IE(22);
- TIMER0->TCMPR = 2000; //定时器最小间隔为1us,定时2000,即为间隔2ms一次
- /* 使能TMR0中断 */
- NVIC_EnableIRQ(TMR0_IRQn);
- }
- void TMR1_Init(void)
- {
- TIMER1->TCSR = TIMER_TCSR_INIT_IE(22);
- TIMER1->TCMPR = 2000; //定时器最小间隔为1us,定时2000,即为间隔2ms一次
- /* 使能TMR0中断 */
- NVIC_EnableIRQ(TMR1_IRQn);
- }
- void TMR3_Init(void)
- {
-
-
- _TIMER_RESET(TIMER3);
- TIMER3->TCMPR = 100000;
- TIMER3->TCSR = TIMER_TCSR_MODE_CONTINUOUS | TIMER_TCSR_TDR_EN_Msk | TIMER_TCSR_PRESCALE(22);
- }
用nulink在线调试后发现,TIMER1 和TIMER3的TCSR值还是上电状态. 而TIMER0 TIMER2,的设置却正常;
查看了bsp自带的timer例程,他4个定时器都用到了.单步调试发现 ,他的各个寄存器都是正常的, 是不是我的写法有问题?
|