9 定时器控制器与系统定时器
9.1 定时器控制器
9.1.1 概述
定时器是单片机中最基本的接口之一,它的用途非常广泛,常用于计数、延时、提供定时脉冲信号等。在实际应用中,对于转速、位移、速度、流量等物理量的测量,通常也是由传感器转换成脉冲电信号,通过使用定时器来测量其周期或频率,再经过计算处理获得。
定时器控制器包括4组32位的定时器,TIMER0~TIMER3, 方便用户的定时器控制应用。定时器模块可支持例如频率测量,计数,间隔时间测量,时钟产生,延迟时间等功能。定时器可在计时溢出时产生中断信号,也可在操作过程中提供计数的当前值。
9.1.2 特征
l 4 组 32-位定时器,带24位向上定时器和一个8位的预分频计数器
l 每个定时器都有独立的时钟源
l 24位向上计数器,通过TDR (定时器数据寄存器)可读取
l 4种工作模式:单脉冲模式(one-shot),周期模式(periodic),开关模式(toggle)和连续计数(continuous counting)模式操作模式
9.1.3 定时器操作模式
² 定时器操作模式
定时器控制器提供4种工作模式,单脉冲(one-shot)模式、周期(periodic)模式、开关(toggle)和连续计数(continuous counting)模式。每种操作功能模式如下所示:
² 单脉冲模式
如果定时器工作在单脉冲模式且CEN (定时器使能位) 置1,定时器的计数器开始计数。一旦定时器计数器的值达到定时器比较器寄存器(TCMPR)的值,IE(中断使能位)置1,则定时器中断标志置位,产生中断信号并送到NVIC通知CPU。表明定时器计数发生溢出。如果IE (interrupt enable bit) 置0,无中断信号产生。
在此工作模式下,一旦定时器计数器的值达到定时器比较寄存器(TCMPR)的值,定时器计数器的值返回初始值且CEN (定时器使能位)由定时器控制器清零。一旦定时器计数器的值达到定时器比较寄存器(TCMPR)的值,定时器计数操作停止。也就是说,在编程比较寄存器(TCMPR)的值与CEN(定时器使能位)置1后,定时器操作定时器计数和与TCMPR值的比较仅执行一次。因此,该操作称为单脉冲模式。
² 周期模式
如果定时器工作在周期模式且CEN(定时器使能位)置1,定时器计数器开始计数。一旦定时器计数器的值达到定时器比较寄存器(TCMPR)的值,且IE (中断使能位)设置为1,则定时器中断标志置位且产生中断信号,并发送到NVIC通知CPU。表示定时器计数溢出发生。
如果IE (中断使能位)设置为0,无中断信号发生。在该工作模式下,一旦定时器计数器的值达到定时器比较器寄存器(TCMPR) 的值,定时器计数器的值返回计数初始值且CEN 保持为1 (持续使能计数)。定时器计数器重新开始计数。
如果软件清除中断标志,一旦定时器计数器的值与定时器比较寄存器(TCMPR)的值匹配且IE (中断使能位)设置为1 中断标志置位,产生中断信号并送到NVIC再次通知CPU。也就是说,定时器操作定时器计数和与TCMPR比较功能是周期性进行的。直到CEN设置为0,定时器计数操作才会停止。中断信号的产生也是周期性的。因此,这种操作模式称为周期模式。
² 开关模式
如果定时器工作在开关模式且CEN(定时器使能位)置1,定时器计数器开始计数。一旦定时器计数器的值与定时器比较寄存器TCMPR的值匹配时,且IE(中断使能位)设置为1,则定时器中断标志置位,产生中断信号并送到NVIC通知CPU。表示定时器发生计数溢出。相应开关输出(tout) 信号置1。
在这种操作模式,一旦定时器计数器的值与定时器比较寄存器TCMPR 的值匹配, 定时器计数器的值返回到计数初始值且CEN 保持为 1 (持续使能计数)。定时器计数器重新开始计数。如果中断标志由软件清除,一旦定时器计数器的值与定时器比较寄存器中TCMPR的值匹配且IE (中断使能位) 置1,则定时器中断标志置位,发生中断信号,并送到NVIC再次通知CPU。相应开关输出(tout)信号置0。定时器计数操作在CEN设置为0之后才停止。因此,开关输出 (tout)信号 以50%的占空比反复改变,所以这种操作模式称为开关模式。
² 连续计数模式
如果定时器工作在连续计数模式且CEN (定时器使能位)置1,如果IE(中断使能位)设置为1, 当TDR =TCMPR时,相关的中断信号产生。用户可以立即改变TCMPR 的值,而不需要禁用或重启定时器计数。例如,TCMPR 的值先被设置为80(TCMPR的值应当小于224-1并且大于1),当TDR 的值等于80时,如果IE (中断使能位)设置为1,定时器产生中断,TIF(定时器中断标志)将被置位,产生中断信号并送到NVIC通知CPU,且CEN 保持为 1 (持续使能计数),但是TDR的值不会返回到零,而是继续计数81,82,83,……to 224 -1, 0, 1, 2, 3, …… to 224 -1 。接下来,如果用户设置TCMPR为200,且TIF被清零。当TDR的值达到200,定时器中断发生,TIF被置位,产生中断信号并送到NVIC再次通知CPU。最后,用户设置TCMPR为500,并再一次清零TIF,当TDR的值达到500,定时器中断发生,TIF被置位,产生中断信号并送到NVIC通知CPU。从应用的角度看,中断的产生取决于TCMPR。在该模式下,定时器计数是连续的,所以这种操作模式被称为连续计数模式。
………………………………………………
书籍下载地址(复制到下载工具进行下载):
https://files.cnblogs.com/wenziqi/ARMCortex-M0原理与应用实践.part1.rar
https://files.cnblogs.com/wenziqi/ARMCortex-M0原理与应用实践.part2.rar
注:书籍内容会不定期进行更新!