dspc6747内部定时器初始化
时间: 2023-07-18 14:39:43 浏览: 234
DSPC6747内部有多个定时器,每个定时器都可以用来产生中断和计时。以下是DSPC6747内部Timer0模块初始化的代码示例:
```c
#include "DSPC6747.h"
void Timer0_init(void)
{
// 1. 禁止Timer0模块
TIMER0->TCR &= ~TIMER_TCR_ENAMODE_MASK;
// 2. 设置Timer0模块的时钟源为CPU时钟
TIMER0->TGCR &= ~TIMER_TGCR_TIMMODE_MASK;
TIMER0->TGCR |= TIMER_TGCR_TIMMODE_CPU;
// 3. 设置Timer0的计数值为10000
TIMER0->PRDLO = 10000 & 0xFFFF;
TIMER0->PRDHI = 10000 >> 16;
// 4. 设置Timer0为周期模式
TIMER0->TCR &= ~TIMER_TCR_ENAMODE_MASK;
TIMER0->TCR |= TIMER_TCR_ENAMODE_PERIODIC;
// 5. 使能Timer0模块
TIMER0->TCR |= TIMER_TCR_ENAMODE_MASK;
// 6. 清除Timer0的计数值
TIMER0->TIM12 = 0;
}
```
这个例子中,我们初始化了Timer0模块,将其时钟源设置为CPU时钟,计数值设置为10000,模式设置为周期模式,最后使能了Timer0模块。在使用Timer0时,我们可以根据需要修改计数值和模式。同时,我们还可以在中断服务函数中处理定时器产生的中断事件,以实现各种功能。
阅读全文