原创 R8C/M16C的定时器例子

2011-2-25 14:05 1432 1 1 分类: MCU/ 嵌入式
来源:瑞萨单片机论坛

我们以M16C/6N4为例
6N4系列有TA和TB两类定时器,分别有5个定时器,总共有10个定时器,几乎可以满足所有的应用。
每个定时器都可以配置为以下4种模式:
Timer mode                      定时模式
Event counter mode              事件计数模式
One-shot timer mode             脉冲输出模式
Pulse width modulation mode     PWM模式

下面我们谈谈定时器的初始化。
定时器作为CPU的外设,它有一个外设时钟源,这个时钟源来自片内的时钟分频器。
例如:
prc0 = 1;
pclk0 = 1;   // 设置Timers A,B的时钟源为f1(晶振的1分频,也就是晶振的频率)
prc0 = 0;
然后初始化其他的寄存器
ta0mr = 0x80;    // 设置为定时模式,ta0的时钟为f32
udf = 0x00;      // 设置为递减计数
ta0 = 0xffff;    // 定时初值
ta0s = 1;        // 计数开始

这样,当ta0递减到0时,就产生一个溢出中断
#pragma interrupt _timer_a0(vect=21)
void _timer_a0(void)
{
// 在这个中断里进行处理
}

文章评论0条评论)

登录后参与讨论
我要评论
0
1
关闭 站长推荐上一条 /3 下一条