tm4c123g定时器

上传人:wt****50 文档编号:37650133 上传时间:2018-04-20 格式:PDF 页数:18 大小:551.77KB
返回 下载 相关 举报
tm4c123g定时器_第1页
第1页 / 共18页
tm4c123g定时器_第2页
第2页 / 共18页
tm4c123g定时器_第3页
第3页 / 共18页
tm4c123g定时器_第4页
第4页 / 共18页
tm4c123g定时器_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《tm4c123g定时器》由会员分享,可在线阅读,更多相关《tm4c123g定时器(18页珍藏版)》请在金锄头文库上搜索。

1、 青风 QF-LM4F232 V1.0 开发手册 http:/ 3.6 16/32-bit位通用定时器。 3.6.1 原理分析: 3.6.2 硬件设计: 3.6.3 软件设计: 3.6.4 程序下载及使用说明: 3.6.1 原理分析: 3.6.1 原理分析: 下面我们认识下 Stellaris 系列的通用定时器。在 LM4F 系列 ARM 的内部通常集成有 6 个 16/32-bit 通用定时器模块(General-Purpose Timer Module,GPTM)和 6 个 32/64-bit 宽带通用定时器模。 16/32-bit通用定时器模块包含2个16位计数器/定时器 (timeA

2、timeB) , 可以单独使用。32/64-bit 宽带通用定时器模包含 2 个 32 位计数器/定时器。 下面我们以如何使用 16/32-bit 状态下的 GPTM 为例进行讲解。 首先我们来看看定时器模 块图: 图 1:定时器模块图 那么通用定时器存在几种工作模式: 1. 单次触发/周期定时器模式 2全宽带 RTC 定时器 3. 输入边沿计数捕获模式 4输入边沿定时捕获模式 5. 16 位/32 位 PWM 模式与 8 位预分频器和软件可编程输出反转 PWM 信号 1. 单次触发/周期定时器模式 2全宽带 RTC 定时器 3. 输入边沿计数捕获模式 4输入边沿定时捕获模式 5. 16 位/

3、32 位 PWM 模式与 8 位预分频器和软件可编程输出反转 PWM 信号 如下图表所示,下面来分别介绍: 如下图表所示,下面来分别介绍: I 青风 QF-LM4F232 V1.0 开发手册 http:/ II 图 2:定时器工作模式 1.单次触发/周期定时器模式 1.单次触发/周期定时器模式 在这两种模式中,Timer 都被配置成一个 32 位的递减或者递增计数器,用法类似,只 是单次触发模式只能定时一次, 如果需要再次定时则必须重新配置, 而周期模式则可以周而 复始地定时,除非被关闭。在计数到 0x00000000 或者预设值时,可以在软件的控制下触发 中断或输出一个内部的单时钟周期脉冲信

4、号, 该信号可以用来触发 ADC 采样。 管于寄存器的 配置在芯片 datasheet 中有详细讲解。 232 位/64 位 RTC 定时器 232 位/64 位 RTC 定时器 在该模式中,Timer 被配置成一个 32 位/64 位的递增计数器。 RTC 功能的时钟源来自 偶数 CCP 管脚的输入。RTC 时钟信号从专门的“32KHz”管脚输入。输入的时钟频率应当为 精准的 32.768KHz,在芯片内部有一个 RTC 专用的预分频器,固定为 32768 分频。因此最终 输入到 RTC 计数器的时钟频率正好是 1Hz,即每过 1 秒钟 RTC 计数器增 1。 RTC 计数器从 0x0000

5、0000 开始计满需要 232 秒,这是个极长的时间,有 136 年!因此 RTC 真正的用法是:初始化后不需要更改配置(调整时间或日期时例外),只需要修改匹配 寄存器的值,而且要保证匹配值总是超前于当前计数值。每次匹配时可产生中断(如果中断 已被使能),据此可以计算出当前的年月日、时分秒以及星期。在中断服务函数里应当重新 设置匹配值,并且匹配值仍要超前于当前的计数值。 3输入边沿计数捕获模式 3输入边沿计数捕获模式 在该模式中, 定时器被配置为能够捕获外部输入脉冲边沿事件的递减计数器或者递增计 数器。共有 3 种边沿事件类型:正边沿、负边沿、双边沿。 该模式的工作过程是:设置装载值,并预设一

6、个匹配值(应当小于装载值);计数使能 后,在特定的 CCP 管脚每输入 1 个脉冲(正边沿、负边沿或双边沿有效),计数值就减 1; 当计数值与匹配值相等时停止运行并触发中断(如果中断已被使能)。如果需要再次捕获外 部脉冲,则要重新进行配置。如下图所示: 青风 QF-LM4F232 V1.0 开发手册 http:/ 图 3:输入边沿计数捕获 4输入边沿定时捕获模式 4输入边沿定时捕获模式 在该模式中, 定时器被配置为自由运行的 24 位或者 48 位递减或者递增计数器, 允许在 输入信号的上升沿或下降沿捕获事件。 该模式的工作过程是:设置装载值(默认为 0xFFFF)、捕获边沿类型;计数器被使能

7、 后开始自由运行,从装载值开始递减计数,计数到 0 时重装初值,继续计数;如果从 CCP 管脚上出现有效的输入脉冲边沿事件, 则当前计数值被自动复制到一个特定的寄存器里, 该 值会一直保存不变, 直至遇到下一个有效输入边沿时被刷新。 为了能够及时读取捕获到的计 数值,应当使能边沿事件捕获中断,并在中断服务函数里读取。如图所示:整个递减或者递 增过程是不停的。 图 4:输入边沿定时捕获模式 5PWM 模式 5PWM 模式 Timer 模块还可以用来产生简单的 PWM 信号。 在 LM4F 系列 ARM 型号当中可以利用 Timer 模块的 16 位 PWM 功能来产生 PWM 信号,只不过功能较

8、为简单。对于 LM4F 片内已集成专用 PWM 模块的,但仍然不够用时,则可以从 Timer 模块借用。 III 青风 QF-LM4F232 V1.0 开发手册 http:/ 在 PWM 模式中,TimerA 或 TimerB 被配置为 24 位或者 48 位递减计数器,通过设置适当 的装载值(决定 PWM 周期)和匹配值(决定 PWM 占空比)来自动地产生 PWM 方波信号从相应 的 CCP 管脚输出。在软件上,还可以控制输出反相,参见函数 TimerControlLevel( )。如 下图所示: 图 5:PWM 模式 3.6.2 硬件设计: 3.6.2 硬件设计: 硬件方面,每一个 Tim

9、er 模块对应两个 CCP 管脚。CCP 是“Capture Compare PWM”的 缩写,意为“捕获/比较/脉宽调制”。在 32 位或 64 位单次触发和周期定时模式下,CCP 功 能无效(与之复用的 GPIO 管脚功能仍然正常)。计数捕获、定时捕获、PWM 功能都会用到 CCP 管脚,对应关系是:Timer0A 对应 TOCCP0、Timer0B 对应 TOCCP1,Timer1A 对应 T1CCP0、 Timer1B 对应 T1CCP1,依此类推。如下图所示: IV 青风 QF-LM4F232 V1.0 开发手册 http:/ V 表 1:硬件管脚分配 3.6.3 软件设计: 下面列

10、出几种常用的函数驱动,更多更新的驱动请大家参考最新的驱动库说明文档: 1.TimerConfigure( ) 功能 3.6.3 软件设计: 下面列出几种常用的函数驱动,更多更新的驱动请大家参考最新的驱动库说明文档: 1.TimerConfigure( ) 功能 配置 Timer 模块的工作模式 原型 原型 void TimerConfigure(unsigned long ulBase, unsigned long ulConfig) 参数 参数 ulBase:Timer 模块的基址,取值 TIMERn_BASE(n 为 0、1、2 或 3) ulConfig:Timer 模块的配置 Lm4f

11、 系列新增加 32/64 位定时器。 与 16/32 位定时器一样。 64 位由 2 个 32 定时器组 成。并且定时器增加上升沿计数函数选项。 在全宽带位模式下应当取下列值之一: TIMER_CFG_ONE_SHOT/全宽带单次定时器 TIMER_CFG_ONE_SHOT_UP/全宽带单次定时器,上升沿计数 TIMER_CFG_PERIODIC/全宽带周期定时器 TIMER_CFG_PERIODIC_UP/全宽带周期定时器,上升沿计数 TIMER_CFG_RTC / 32 位 RTC 定时器 TIMER_CFG_SPLIT_PAIR/双半宽带定时器 青风 QF-LM4F232 V1.0 开发

12、手册 http:/ VI 在半宽带模式下,一个全宽带的 Timer 被拆分成两个独立运行的子定时器 TimerA 和 TimerB。 配置 TimerA 的方法是参数 ulConfig 取值下列值进行“或运算”的组合形式: TIMER_CFG_A_ONE_SHOT / TimerA 为单次触发定时器 TIMER_CFG_A_ONE_SHOT_UP/TimerA 为单次触发定时器,上升沿计数 TIMER_CFG_A_PERIODIC / TimerA 为周期定时器 TIMER_CFG_A_PERIODIC_UP /TimerA 为周期定时器,上升沿计数 TIMER_CFG_A_CAP_COUNT

13、 / TimerA 为边沿事件计数器 TIMER_CFG_A_CAP_COUNT_UP/TimerA 为边沿事件计数器,上升沿计数 TIMER_CFG_A_CAP_TIME / TimerA 为边沿事件定时器 TIMER_CFG_A_CAP_TIME_UP/ TimerA 为边沿事件定时器,上升沿计数 TIMER_CFG_A_PWM / TimerA 为 PWM 输出 配置 TimerB 的方法与 TimerB 相同,参数 ulConfig 取值 TIMER_CFG_B_*值之一进行 “或运算”的组合形式,TIMER_CFG_B_*与上面的列表类似。 2.TimerControlTrigger

14、( ) 功能 2.TimerControlTrigger( ) 功能 控制 Timer 的输出触发功能使能或禁止 原型 原型 void TimerControlTrigger(unsigned long ulBase, unsigned long ulTimer, tBoolean bEnable) 参数 参数 ulBase:Timer 模块的基址,取值 TIMERn_BASE(n 为 0、1、2 或 3) ulTimer:指定的 Timer,取值 TIMER_A、TIMER_B 或 TIMER_BOTH bEnable:如果取值 true,则使能输出触发 如果取值 false,则禁止输出触发 返回 返回 无 3.TimerLoadSet( ) 功能 3.TimerLoadSet( ) 功能 设置 Timer 的装载值 原型 原型 void TimerLoadSet(unsigned long ulBase, unsigned long ulTimer, unsigned long ulValue) 参数 参数 ulBase:Timer 模块的基址,取值 TIMERn_BASE(n 为 0、1、2 或 3) ulTimer:指定的 Timer,取值 TIMER_A、TIMER_B 或 TIMER_BOTH,当定时器被配置为 全宽带 模式的时候,仅使用 TI

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 建筑机械

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号