【Cortex-M0】9 定时器控制器与系统定时器
2012-02-25 11:04
459 查看
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。在该模式下,定时器计数是连续的,所以这种操作模式被称为连续计数模式。
………………………………………………
书籍名称:ARM Cortex-M0原理与应用实践
书籍下载地址:http://download.csdn.net/detail/k125008301/4070709
相关文章推荐
- Cortex-M0【中断向量表】【中断控制和系统控制
- 【Cortex-M0】10 PWM发生器和捕捉定时器
- 【Cortex-M0】19.5系统复位
- 9 定时器控制器与系统定时器
- 【Cortex-M0】14 Flash内存控制器(FMC)
- 【Cortex-M0】4 ARM微微控制器的指令集
- 【Cortex-M0】15 I2C总线控制器
- 基于Kinetis的KL系列之Cortex-M0的WAV音频播放器——系统设计(1)
- 【Cortex-M0】16串行外围设备接口(SPI)控制器
- stm32之Cortex系统定时器(SysTick)
- 【转贴】Cortex系列M0-4简单对比
- UIScrollView(滚动视图)和(UIPageController)页面控制器+ 定时器的使用
- C#开发系统服务时用的定时器组件(修正版)
- 通过系统的定时器AlarmManager来定时启动Notification
- 嵌入式系统作业:简述Cortex指令集相比ARM指令集的优势
- 2016/05/10 thinkphp 3.2.2 ①系统常量信息 ②跨控制器调用 ③连接数据库配置及Model数据模型层 ④数据查询
- linux 系统定时器的一些用法
- 【STM32】STM32之系统滴答定时器
- Cortex-M0的BOD中断及重启-掉电检测的可利用性+BOD汇编启动
- 2016 系统设计第一期 (档案一)MVC 控制器接收表单数据