当前位置:文档之家› 第七章 定时计数器TPM

第七章 定时计数器TPM

汽车单片机原理与应用
第七章 定时计数器TPM
车辆教研室:王志强
1
第七章 定时计数器TPM
内容与目标
理解HCS08的定时器/PWM模块TPM(Timer/Pulse-Width Modulator) 模块原理
TPM的几种工作模式
自由计数 输入捕捉 输出比较 脉宽调制PWM(Pulse-Width Modulation )
Slide 18
18
第七章 定时计数器TPM
模块寄存器
定时器x状态控制寄存器(TPMxSC)
数据位 定义 复位
D7 D6
D5
D4
D3
D2
D1
D0
TOF TOIE CPWMS CLKSB CLKSA PS2 PS1 PS0
0
0
0
0
0
0
0
0
D4、D3 — 时钟源选择位
CLKSB:CLKSA 预置输入的TPM
狗计数器复位 */
}
}
Slide 28
TPM定时应用举例 interrupt VectorNumber_Vtpm1ovf void
TPM1_OVF_ISR(void) //定时器1溢出中断 程序
{ DisableInterrupts; /*关中断*/ if(TPM1SC_TOF) { TPM1SC_TOF = 0; /*清中断标志位*/ count++; } if(count==4) { PTAD_PTAD0=~PTAD_PTAD0; /*反
PTAD_PTAD0=1; /*PTA0输出高电平*/
TPM1SC=0x4E;
/*中断使能,选择
总线时钟频率,64分频*/
TPM1MODH=0xF4;/*预置数寄存器高位*/
TPM1MODL=0x24;/*预置数寄存器低位*/
EnableInterrupts; /*开中断 */
for(;;)
{
__RESET_WATCHDOG(); /* 看门
概述
7
第七章 定时计数器TPM
定时器系统的特性
16位自由运行或者预置数向上 递增/向下递减计数操作功能; 16位预置计数寄存器用于控制 计数范围 定时器系统启动控制 对每个TPM,每个通道一个中 断,还有一个计数溢出中断
概述
8
第七章 定时计数器TPM
内部结构
▪ 两个独立的TPM ▪ 每个TPM都由1个16位的计
时钟源
0:0
没有选择的时钟
(TPM屏蔽)
0:1
总线速率时钟
(BUSCLK)
1:0
固定系统时钟
(XCLK)
1:1
外部源
(TPMCLK)1,2
D2~D0 — PS2~PS0位:定时
器分频因子选择位
PS2、PS1、PS0 =000 p=1
(20)
=001 p=2
(21)
=010 p=4
(22)
=011 p=8
21
第七章 定时计数器TPM
➢ TPM通道状态和控制寄存器
TPM通道状态和控制寄存器(Timer x Channel n Status and Control Register,TPMxCnSC):
数据位 D7 D6
D5
D4
D3
D2
D1
D0
定义 CHnF CHnIE MSnB MSnA ELSnB ELSnA
第七章 定时计数器TPM
MC9S08AW60系列中的定时器系统 包括两个独立的TPM:一个6通道的TPM1 和一个2通道的TPM2。管脚复用。
概述
4
第七章 定时计数器TPM
定时器系统的特性
总共8个通道 每一个通道都可作为输 入捕捉、输出比较、或 边缘对齐PWM 上升沿、下降沿或任何 边沿的输入捕捉触发 变1、变0或翻转等输出 比较动作 PWM输出极性可选
Slide 20
20
第七章 定时计数器TPM
模块寄存器
定时器x模数寄存器(TPMxMODH:TPMxMODL)
▪ 可读/写的TPM模数寄存器中包含TPM计数器的模数值。当TPM计数器到达这个 模数值后,TPM计数器在下一个时钟要么重新从0x0000开始计数 (CPWMS=0),要么从这个模数值往下减1计数(CPWMS=1),同时溢出标 志TOF(Timer Overflow Flag)变为1。只写TPMxMODH或者TPMxMODL 其中的一个会抑制住TOF和溢出中断直到些另外一个字节也被写为止,因此两 个寄存器一定都要写,不能只写一个而不管另一个。复位会使TPM模数寄存器 为0x0000,相当处于自由运行定时器计数模式(模数禁止)。
初始化:
PTADD_PTADD0=1; PTAD_PTAD0=1; TPM1SC=0x4E; TPM1MODH=0xF4; TPM1MODL=0x24;
/*PTA0设置为输出*/ /*PTA0输出高电平*/ /*中断使能,选择总线时钟频率,64分频*/ /*预置数寄存器高位*/ /*预置数寄存器低位*/
学会TPM模块设计
自由计数精确定时 输入捕捉应用(如频率测试) 输出比较应用(如周期波形输出) PWM应用(PWM波产生)
进一步认识“对MCU外部管脚/内部模块的控制正是通过Regs 的控制来实现”
2
第七章 定时计数器TPM
概述
实现计数与定时的基本方法 完全硬件方式 即完全用硬件电路(数字逻辑电路)实现计数/定时功能 完全软件方式 通过编程,利用计算机执行指令的时间实现定时(延时子 程序) 可编程计数器/定时器 利用专门的可编程计数器/定时器实现计数与定时,克服 了完全硬件方式与完全软件方式的缺点,综合利用了它们 各自的优点
D5~D4—ELSnB~ELSnA为边沿/电平选择位
第七章 定时计数器TPM
通道控制寄存器控制位
第七章 定时计数器TPM
7.3.2 输入捕捉的寄存器
TPM通道数值寄存器(Timer x Channel n Value Register ,
TPMxCnVH : TPMxCnVL)
作用是:当指定的沿跳变发生 (即定时系统捕捉到沿跳变) 时, 锁存计数寄存器的值。通道寄存器是一个16位的寄存器,分为高字节 和低字节,在读取的时候要分别读取。为了防止两次读取之间该寄存 器的内容发生变化而产生虚假的输入捕捉计数值,系统会在读取高字 节时锁存低字节的内容,这时即使又发生特定的沿跳变,通道寄存器 的内容也不会改变。若要读取整个通道寄存器,先高字节,再低字节 。
第七章 定时计数器TPM
TPM定时应用举例
[例]利用定时器1的定时溢出,使PTA0口的电平每4s反转一次。
分析:设定时器每1s产生一次中断,4次中断后,反转PTA0口电平。选择计 数器时钟源为总线时钟(4MHZ)64分频,预置数寄存器内容为1s×(4×106 HZ)/64=62500(0xF424)。
自由计数定时
▪ 核心是一个16位的计数器 ▪ 只读的16位TPM计数寄存器由
两个字节寄存器TPMxCNTH和 TPMxCNTL构成。
功能描述
11
第七章 定时计数器TPM
预置计数定时
▪ 向16位模数计数寄存器 TPMxMODH:TPMxMODL写入 一个确定的数值,则计数器每进 行一次计数都会将计数和模数计 数寄存器的值进行比较,如果相 同就产生溢出,同时置溢出标志 位TOF为1,然后重新开始计数, 溢出时若TOIE为1,还会产生中
=101 p=32 (25)
=110 p=64 (26)
=111 (未使用)
19
第七章 定时计数器TPM
模块寄存器
定时器x计数寄存器(TPMxCNTH:TPMxCNTL)
▪ 只读的16位TPM计数寄存器由两个字节寄存器TPMxCNTH和TPMxCNTL构成。 读两个字节中的任何一个字节都会把两个字节内容锁存进内部缓冲器,直到另 外一个字节也被读取为止。这允许以任何顺序读取连贯的16位寄存器。
数器与n (n=6 or 2)个输入 /输出通道组成 ▪ 每一个通道都可作为输入捕 捉、输出比较、或边缘对齐 PWM
功能描述
9
第七章 定时计数器TPM
自由计数定时
▪ 核心是一个16位的计数器
> 三种时钟源之一经过分频之 后的脉冲即作为定时器的计 数脉冲
> 每过一个计数脉冲, Counter便自动+1,Counter 加到FFFF后翻转到$0000, 同时置溢出标志位TOF为1, 然后重新开始计数
数据位 D7 D6
D5
D4
D3
D2
D1
D0
定义 CHnF CHnIE MSnB MSnA ELSnB ELSnA
复位 0
0
0
0
0
0
0
0
D5~D4—MSnB~MSnA为通道n模式选择位(Mode Select Bit) CPWMS=0,MSnB=1: MSnA为通道n配置边缘对齐PWM模式 CPWMS=0,MSnB=0: MSnA为通道n配置输入捕捉或者输出比较模式
复位
0
0
0
0
0
0
0
0
D7 — TOF位:定时器溢出标志位 =0,计数器没有达到预置值;=1,定时器溢出
D6 — TOIE位:定时器溢出中断允许位 =1,允许定时器溢出中断;=0,不允许定时器溢出中断
D5 — CPWMS位:中心对齐PWM选择位 CPWMS=0,所有TPM通道运行为输入捕捉、输出比较或边沿排 列PWM模式,通过对每个通道的状态和控制寄存器的 MSnB:MSnA进行选择。 CPWMS=1,所有TPM通道以中心排列 PWM模式运行
复位 0
0
0
0
0
0
0
0
D7—CHnF为通道n标志位 0:通道n上没有输入捕捉或者输出比较 1:通道n上发生输入捕捉或者输出比较
相关主题