8 位 PWM 计数器(Timer2)
PMS15A/PMS150C 内置 1 个 8 位 PWM 硬件定时器(Timer2/TM2),硬件框图请参考图 9。计数器的时钟
源可能来自系统时钟(CLK)、内部高频 RC 振荡器时钟(IHRC)、内部低频 RC 振荡器时钟(ILRC)、PA0 或 PA4
的输出 。寄存器 tm2c 的位[7:4]用来选择定时器时钟。若内部高频 RC 振荡器时钟(IHRC)被选择当做 Timer2
的时钟,当仿真器停住时,IHRC 时钟仍继续送到 Timer2,所以 Timer2 在仿真器停住时仍然会继续计数。依据
寄存器 tm2c 的设定,Timer2 的输出可以通过 tm2c[3:2]选择性输出到 PA3 或 PA4,此时无论 PA3 或 PA4 是输
入还是输出的状态,Timer2 的信号都会被强制输出。利用软件编程寄存器 tm2s 位[6:5],时钟预分频器的模块
提供了÷1,÷4,÷16 和÷64 的选择,另外,利用软件编程寄存器 tm2s 位[4:0],时钟分频器的模块提供了÷1~÷31
的功能。在结合预分频器以及分频器,Timer2 时钟(TM2_CLK)频率可以广泛和灵活,以提供不同产品应用。
TM2_CLK 也可以被选定为系统时钟,以提供特殊的系统时钟频率,请参阅 clkmd 寄存器。
8 位 PWM 定时器只能执行 8 位上升计数操作,经由寄存器 tm2ct,定时器的值可以设置或读取。当 8 位
定时器计数值达到上限寄存器设定的范围时,定时器将自动清除为零,上限寄存器用来定义定时器产生波形的
周期或 PWM 占空比。8 位 PWM 定时器有两个工作模式:周期模式和 PWM 模式;周期模式用于输出固定周期
波形或中断事件;PWM 模式是用来产生 PWM 输出波形,PWM 分辨率可以为 6 位或 8 位。图 10 显示出 Timer2
周期模式和 PWM 模式的时序图。
PMS150C PMS15Adatasheet 规格书 应广单片机PMS15A数据手册【中文版】大量库存 深圳市艾拓微电子科技有限公司
PMS15A** SOP8 艾拓微电子科技有限公司PMS150G 应广单片机 PADAUK 中国台湾 一级代理
中断
PMS15A/PMS150C 有四个中断源:
1. 外部中断源 PA0 2. GPC 中断源
3. Timer16 中断源
4. Timer2 中断源
每个中断请求源都有自己的中断控制位启用或停用它。硬件框图请参考图 12,所有的中断请求标志位是由硬件
置位并且并通过软件写寄存器 intrq 清零。中断请求标志设置点可以是上升沿或下降沿或两者兼而有之,这取决于对
寄存器 integs 的设置。所有的中断请求源后都需由 engint 指令控制(启用全局中断)使中断运行,以及使用 disgint
指令(停用全局中断)停用它。中断堆栈是共享数据存储器,其地址由堆栈寄存器 sp *。由于程序计数器是 16
位宽度,堆栈寄存器 sp 位 0 应保持 0。此外,用户可以使用 pushaf 指令存储 ACC 和标志寄存器的值到堆栈,以
及使用 popaf 指令将值从堆栈恢复到 ACC 和标志寄存器中。
由于堆栈与数据存储器共享,在 Mini-C 模式,堆栈位置与深度由编译程序安排。在汇编模式或自行定义堆栈深
度时,用户应仔细安排位置,以防地址冲突。
图 12:中断硬件框图
一旦发生中断,工作流程是:
程序计数器将自动存储到 sp 寄存器*的堆栈内存。
新的 sp 将被更新为 sp+2。
全局中断将自动被停用。
将从地址 0x010 获取下一条指令。
-/gbachae/-
http://atw2014.cn.b2b168.com