编辑: 芳甲窍交 | 2018-07-19 |
00
1 /
9 2016-03-30 HT8 MCU 内置 PTM PWM 应用范例 文件编码:AN0425S 简介 HT8 MCU 内置的周期型定时器模块(PTM)可提供 (1)定时/计数器模式 (2)捕捉输入模式 (3)PWM 输出模式 (4)比较匹配输出模式 (5)单脉冲输出模式.本文以 HT66F003 PTM 的PWM 输出模式提供 C 语言范例,用户可通过本范例了解 PWM 控制方法. PTM 模块说明 Periodic Type TM Block Diagram (n =
0 or 1) 上图为HT8 MCU中10-bit PTM的方框图.其中一些控制信号,如PTnON、PTPn、PTPnB、 PTCKn、 PTPnI等, 在其它MCU中按实际的PTM模块编号会有不同的流水号, 譬如PT1ON、 PTP
1、PTP1B、PTCK
1、PTP1I等.使用时须注意实际模块在MCU中的流水号以进行正确 的命名.在PTM中主要有一个 10-bit向上计数器.该计数器输入时钟可通过PT1CK2 ~ PT1CK0 选择. 在HT66F003 中, fSYS为MCU系统时钟, 可通过SMOD寄存器选择工作频率, 若无指定则内定为 8MHz.fH是内部HIRC振荡器输出,该频率固定为 8MHz.fTBC是通过内 部LIRC振荡器输出,内定 32kHz.内部有两个比较器:一个是
10 位的比较器A,另一个是
10 位的比较器P.当计数器与比较器匹配时,将分别产生比较A中断 (PTMA1F Interrupt)以 及比较P中断 (PTMP1F Interrupt).计数器的启动通过PT1ON位控制,当0变1时,计数器 会开始计数.当PT1ON由1变成 0,计数器会停止计数.计数器的清除可通过PT1CCLR位 选择清除条件, 一个是比较器A匹配另一个是比较器P匹配. 在PTM操作在PWM输出模式下, Output Control方块必须设置为PWM输出模式 [PT1M1:PT1M0] = 10,IO为PWM输出 HT8 MCU 内置 PTM PWM 应用范例 AN0425S V1.00
2 /
9 2016-03-30 [PT1IO1:PT1IO0] = 10,以及Polarity Control方块用来设置输出的极性是否要反向. PTM 相关寄存器分别在汇编语言和 C 语言变量对应表 Module Assembly C PTM1 PTM1C0 _ptm1c0 PTM1C1 _ptm1c1 PTM1DL _ptm1dl PTM1DH _ptm1dh PTM1AL _ptm1al PTM1AH _ptm1ah PTM1RPL _ptm1rpl PTM1RPH _ptm1rph Interrupt Enable MF1E PTMA1E PTMP1E _mf1e _ptma1e _ptmp1e Interrupt Flag MF1F PTMA1F PTMP1F _mf1f _ptma1f _ptmp1f 当使用 C 语言控制 PTM1 时,控制寄存器请依上表中 C 语言的变量命名来呼叫使用.该变量 名称定义于HT66F003.h头文件内部. 其中[_ptm1ah:_ptm1al]设置CCRA值, [_ptm1rph:_ptm1rpl] 设置 CCRP 值.[_ptm1dh:_ptm1dl]代表现在 PTM 计数器的内容,该值只可读取不可写入. 中断使能与标志 INT Pin Time Base
0 INTF TB0F INTE TB0E EMI 04H EMI 08H EEPROM DEF DEE 0CH 10H 14H 18H 1CH Interrupt Name Request Flags Enable Bits Master Enable Vector EMI auto disabled in ISR Priority High Low M. Funct.
1 MF1F MF1E Interrupts contained within Multi-Function Interrupts xxE Enable Bits xxF Request Flag, auto reset in ISR Legend xxF Request Flag, no auto reset in ISR EMI EMI EMI STM P STMP0F STMP0E STM A STMA0F STMA0E EMI EMI Time Base
1 TB1F TB1E M. Funct.
0 MF0F MF0E A/D ADF ADE PTM P PTMP1F PTMP1E PTM A PTMA1F PTMA1E HT66F003 only Interrupt Name Request Flags Enable Bits Interrupt Structure C HT66F002/HT66F003 上图为 HT66F003 与HT66F002 的中断向量表, 在HT66F003 里面包含了 STM0 以及 PTM1 模块.当PTM1 使用在 PWM 输出模式下时,中断使能位 MF1E、PTMA1E、PTMP1E 维持 为0. PTM1PWM 模式的设置 [_pt1m1:_pt1m0] PTM1 工作模式 HT8 MCU 内置 PTM PWM 应用范例 AN0425S V1.00
3 /
9 2016-03-30
00 比较匹配输出
01 捕捉输入
10 PWM 输出/单脉冲输出
11 定时/计数 若要使用 PWM 模式,_ptm1c1 寄存器中的 [_pt1m1:_pt1m0] 必须设成 10. PTM1 输出的设置 PTM1 的输出引脚名称为 PTP1 以及 PTP1B. 在HT66F003 中PTP1 位于 PB3 或PB5. PTP1B 位于 PB2 或PB4. 在PWM 模式下,输出 Pin 必须选择为 PWM 输出.[_pt1io1:pt1io0] 须设为 10.下表列出 输出 Pin 的设置模式与功能. [_pt1m1:_pt1m0] [_pt1io1:pt1io0] PTM1 Output Function