今天一直在调试老师昨天留下来的几个代码任务,是关于定时器及中断的几个代码,开始的时候很生疏,对几个寄存器
的名称,功能,以及应该赋的值全是一头雾水,就按照老师留下来的例子修改,逐个寄存器的对照着手册进行进行查找,并熟悉每一位的功能,赋值以及对应中断的开关,标志位的清除,对定时器的使用慢慢熟络起来,下面是我总结的
定时器使用流程:
1、TCFG0配置预分频的值
2、TCFG1配置分频器的值
3、TCNTB为定时器写初值
4、TCMPB脉宽调制中的占空比
5、TCON定时器/计数器控制寄存器 控制定时器刷新3.4的值
6、TCON开启定时,是否自动装初值
7、ClearPending(BIT_TIMER3)清除标志位
8、pISR_TIMER3注册中断向量
9、EnableIrq使能中断
对应例句程序:
void Timer3_Init()
{
rTCFG0 = 0XF900;
rTCFG1 = 0x3000;
rTCNTB3 = 12500;
rTCMPB3 = 12500/2;
rTCON = 0x020000;
rTCON = 0x090000;
ClearPending(BIT_TIMER3);
pISR_TIMER3 = (U32)Timer3_irq;
EnableIrq(BIT_TIMER3);
}