第9章_MC9S12XS128定时器模块及其应用实例

更新时间:2023-03-18 21:18:01 阅读量: 人文社科 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《MC9S12XS单片机原理 及嵌入式系统开发》合肥工业大学吴 晔,张 阳,滕 勤

第9章 MC9S12XS128定时器模块 及其应用实例 本章内容 9.1 TIM模块概述 9.2 TIM模块结构和工作原理

9.3 TIM模块的自由运行计数器和定时器基本寄存器及设置 9.4 TIM模块的输入捕捉功能及寄存器设置 9.5 TIM模块的输出比较功能及寄存器设置 9.6 TIM模块的脉冲累加器功能及寄存器设置 9.7 TIM模块应用实例

第9章 MC9S12XS128定时器模块及 其应用实例9.1 TIM模块概述定时器/计数器的特点: (1)可以有多种工作方式——定时方式或计数方式等。 (2)计数器的模值可变——计数的最大值有一定的限制,取决于计数 器的位数。计数的最大值限制了定时的最大值。 (3)可以根据规定的定时或计数值,当定时时间到或到达计数终点时 ,发出中断请求信号,以便实现定时或计数控制。 定时器——计数脉冲来自于系统工作时钟或经过分频后的系统时钟 ,即驱动脉冲为内部时钟信号;

计数器——计数脉冲来自于芯片外部引脚,即驱动脉冲为外部时钟 信号。

第9章 MC9S12XS128定时器模块 及其应用实例 9.1 TIM模块概述嵌入式系统中定时器/计数器模块的作用: 【产生波形输出】从MCU的I/O引脚向外输出一系列符合一定时序规 范的周期信号。

【测量输入波形】从MCU的I/O引脚上检测外部输入的一系列周期信 号的脉宽、周期或频率。 【统计脉冲或边沿个数】对端口引脚输入的、由外部事件产生的触 发信号进行计数。 【作为定时基准】产生内部定时,例如用于定时采样等。 MC9S12XS128定时器模块称为TIM(Timer Module)。

第9章 MC9S12XS128定时器模块 及其应用实例 本节内容 9.2 TIM模块结构和工作原理 9.2.1 TIM模块结构 9.2.2 TIM模块工作原理

9.2.3 TIM模块寄存器 9.2.4 TIM模块中断系统

第9章 MC9S12XS128定时器模块 及其应用实例 9.2 TIM模块结构和工作原理9.2.1 TIM模块结构 【TIM组成】

1个16位自由运行计数器 8个16位输入捕捉/输出比较通道 1个16位脉冲累加器 【特点】 模块时钟输入具有7位预分频器 8个输入捕捉通道带有边沿检测器 8个输出比较通道的输出极性可选择 16位脉冲累加器带有边沿检测器

第9章 MC9S12XS128定时器模块及 其应用实例9.2 TIM模块结构 和工作原理9.2.2 TIM模块工作原 理 【工作模式】 停止(STOP)模式

冻结(Freeze)模式 等待(Wait)模式 正常(Normal)模式

【定时器模块框图】

第9章 MC9S12XS128定时器模块 及其应用实例 9.2 TIM模块结构和工作原理9.2.2 TIM模块工作原理 【详细功能框图】

第9章 MC9S12XS128

定时器模块 及其应用实例 9.2 TIM模块结构和工作原理9.2.2 TIM模块工作原理 【自由运行计数器】 TIM的核心——16位自由运行计数器,也称为自由运行主定时器。 系统复位时——自由运行计数器为$0000。 模块运行时——自由运行计数器从$0000~$FFFF循环递增计数。 溢出复零时——置位中断标志。 时钟源TIMCLK—— PCLK,PACLK,PACLK/256,PACLK/65536。 预分频器时钟PCLK——由总线时钟经过一个7位预分频器得到。 预分频系数—— 8种。

第9章 MC9S12XS128定时器模块及 其应用实例 9.1 TIM模块概述9.2.2 TIM模块工作原理 【输入捕捉】 输入捕捉(Input Capture,IC):通过捕获自由运行计 数器的计数值来检测外部事件和记录选定的输入信号 跳变边沿的时间。 当外部事件发生或信号发生变化时,指定的输入捕捉 通道对应的引脚上产生一个规定的跳变沿(上升沿或 下降沿)。定时器输入通道根据相应引脚上的电平变 化,将当前自由运行计数器中的计数值捕捉到通道寄 存器中。 如果此时允许输入捕捉中断,则产生一次输入捕捉中

断申请,利用中断服务程序可读取通道计数器数值, 获得事件发生的时刻或信号变化的时刻。

9.1 TIM模块概述

第9章 MC9S12XS128定时器模块及 其应用实例

9.2.2 TIM模块工作原理 【输出比较】 输出比较(Output Compare,OC):输出 比较功能利用编程实现特定时刻输出需 要的电平,实现对外部电路的控制。 用户根据需要设置输出比较寄存器值, 自由运行计数器值与输出比较寄存器值

每隔4个总线周期比较一次,当两者相等 时,会在相应通道引脚上输出预先设定 的电平。 如果允许输出比较中断,则产生一次中

断申请。

第9章 MC9S12XS128定时器模块 9.1 TIM模块概述 及其应用实例9.2.2 TIM模块工作原理

【脉冲累加器】脉冲累加器(Pulse accumulator,PA):通过检测相应引脚上的有效边沿统计脉冲个数 。TIM模块只有一个16位的脉冲累加器,与PT7引脚复用,其工作方式有事件计数方式

和门控时间累加方式两种。

【计数方式】工作方式不同,脉冲累加器的计数脉冲的来源不同。

★ 事件计数方式——计数脉冲来自输入引脚,脉冲累加器相当于普通计数器,即对有效边沿计数,有效边沿可设定为上升沿或下降沿。输入引脚上每产生一个有效边沿跳 变,脉冲累加计数器的值加1。 当脉冲累加器溢出时,将置位中断标志。如果允许脉冲累加器溢出中断,则产生一次 中断申请。

第9章 MC9S12XS128定时器模块及 其应用实例9.1 TIM模块概述9.2.2 TIM模块工作原理 【脉冲累加器】 【计数方式】 ★ 门控

时间累加方式——门控信号来自输入引脚,时钟信号来自内部时钟PACLK,即总线时钟的64分频(ECLK/64),门控信号可设定为高电平有

效或低电平有效。在有效电平期间,脉冲累加器对PACLK时钟信号进行计 数。此时,脉冲累加器相当于可控计数器,可用来测量脉冲宽度。 门控时间累加方式下,输入引脚上的有效电平将触发脉冲累加器开始对 ECLK/64时钟进行计数,输入引脚上有效电平结束时的跳变沿将停止计数 ,同时置位中断标志。如果允许脉冲累加器中断,则产生一次中断申请。

第9章 MC9S12XS128定时器模块及 其应用实例9.1 TIM模块概述9.2.3 TIM模块寄存器 MC9S12XS128的TIM模块共有48个寄存器,其中9个是系统保留寄存器 。

TIM模块的内存映射表给出了这些寄存器的地址、名称和访问权限。 对于每个寄存器,所列的地址是地址偏移量,每个寄存器的绝对地 址是TIM模块的基本地址与每个寄存器地址偏移量之和。

TIM模块的基本地址是0x0040。 TIM模块的寄存器分为3类:控制寄存器、数据寄存器和状态寄存器 。

第9章 MC9S12XS128定时器模块及 其应用实例9.1 TIM模块概述9.2.3 TIM模块寄存器 【控制寄存器】

第9章 MC9S12XS128定时器模块及 其应用实例9.1 TIM模块概述 【数据寄存器】 9.2.3 TIM模块寄存器

【状态寄存器】

第9章 MC9S12XS128定时器模块及 其应用实例9.1 TIM模块概述9.2.4 TIM模块中断系统【ECT模块中断源】 TIM模块共有11个中断源: 1个自由运行定时器溢出中断 8个定时器通道中断

1个脉冲累加器输入中断 1个脉冲累加器溢出中断 TIM模块只检测中断并产生中断

请求,不会对中断请求进行处理 ,用户根据需要自行编写中断服 务程序处理相应的中断事件。

第9章 MC9S12XS128定时器模块及 其应用实例9.1 TIM模块概述

9.1.3 ECT模块的中断系统【ECT模块中断源】 默认中断优先级次序:从上到下优先级为从高到低。写入HPRIO中的代码值实际上是中断矢量起始地址的低字节。

第9章 MC9S12XS128定时器模块 及其应用实例本节内容 9.3 TIM模块的自由运行计数器和定时 器基本寄存器及设置 9.3.1 自由运行主定时器与时钟频率设置

9.3.2 TIM模块基本寄存器及设置

第9章 MC9S12XS128定时器模块及 其应用实例9.3 TIM模块的自由运行计数器和定时器基本寄存器及设置9.3.1 自由运行主定时器与时钟频率设置 16位自由运行主定时器的工作频率决定输入捕捉/输出比较的分辨能力。

定时器计数寄存器TCNT对多路转换器输出的时钟信号进行计数,当计数值从 $FFFF溢出变为$0000时,主定时器中断标志寄存器TFLG2中的中断标志TO

F置 位,如果此时定时器系统控制寄存器TSCR2中的中断允许位TOI=1,将向CPU申 请中断。 设置TOI=0将禁止自由运行计数器溢出中断,向TFLG2中写入$80将清除TOF标 志。 自由运行主定时器的时钟TIMCLK由4选1多路转换器提供,时钟源的切换由16 位脉冲累加器控制寄存器 PACTL中的CLK1和CLK0确定,时钟可以是PCLK、 PACLK、PACLK/256、PACLK/65536。

9.3 TIM模块的自由运行计数器和定时器基本寄存器及设置9.3.1 自由运行主定时器与时钟频率设置

第9章 MC9S12XS128定时器模块及 其应用实例

其中,PCLK称为P时钟,由自由运行计数器预分频器将总线时钟进行2k 分频后得到(k=0~7) ,分频系数由定时器系统控制寄存器TSCR2中的PR2 、PR1和PR0三位确定(此时,要求定时器系统控制寄存器TSCR1中的 PRNT=0,即定时器为普通定时器)。 PACLK是16位脉冲累加器的时钟,频率为ECLK/64。 为了提高定时器性能,TIM模块增加一个精确定时器分频因子选择寄存器 PTPSR,通过定时器系统控制寄存器TSCR1中的PRNT位选择是否使用PTPSR 寄存器。当TSCR1寄存器中的PRNT=1(定时器为精确定时器)时,PTPSR 寄存器的8位可以对主定时器的预分频值进行附加设置,用来扩大定时范 围。

本文来源:https://www.bwwdw.com/article/oifj.html

Top