- 1、本文档共37页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
手把手教你写S12XS128程序--PWM模块介绍
该教程以MC9S12XS128单片机为核心进行讲解,全面阐释该16位单片机资源。本文为第一讲,开始介绍该MCU的PWM模块。
PWM 8 个输出通道,每一个输出通道都可以独立的进行输出。每一个输出通道都有一个精确的计数器(计算脉冲的个数),一个周期控制寄存器和两个可供选择的时钟源。每一个 PWM 输出通道都能调制出占空比从 0—100% 变化的波形。
PWM 的主要特点有:
1、它有 8 个独立的输出通道,并且通过编程可控制其输出波形的周期。
2、每一个输出通道都有一个精确的计数器。
3、每一个通道的 PWM 输出使能都可以由编程来控制。
4、PWM 输出波形的翻转控制可以通过编程来实现。
5、周期和脉宽可以被双缓冲。当通道关闭或 PWM 计数器为 0 时,改变周期和脉宽才起作用。
6、8 字节或 16 字节的通道协议。
7、有 4 个时钟源可供选择(A、SA、B、SB),他们提供了一个宽范围的时 钟频率。
8、通过编程可以实现希望的时钟周期。
9、具有遇到紧急情况关闭程序的功能。
10、每一个通道都可以通过编程实现左对齐输出还是居中对齐输出。
1、PWM启动寄存器PWME
PWME 寄存器每一位如图 1 所示:
复位默认值:0000 0000B
图 1 PWME 寄存器?
每一个PWM 的输出通道都有一个使能位 PWMEx 。它相当于一个开关,用来启动和关闭相应通道的 PWM 波形输出。当任意的 PWMEx 位置 1,则相关的 PWM 输出通道就立刻可用。
用法: PWME7=1 --- 通道7 可对外输出波形
PWME7=0 --- 通道7 不能对外输出波形
注意:在通道使能后所输出的第一个波形可能是不规则的。当输出通道工作在串联模式时(PWMCTL 寄存器中的 CONxx 置1),那么)使能相应的 16 位 PWM 输出通道是由 PWMEx 的高位控制的,例如 :设置 PWMCTL_CON01 = 1,通道0、1级联,形成一个16位 PWM 通道,由通道 1 的使能位控制 PWM 的输出。
2、PWM时钟选择寄存器PWMCLK
PWMCLK 寄存器每一位如图2所示:
复位默认值:0000 0000B
图2 PWMCLK 寄存器?
S12的PWM 共有四个时钟源,每一个 PWM 输出通道都有两个时钟可供选择(ClockA、ClockSA 或Clock B、ClockSB))。其中0、1、4、5 通道可选用ClockA和ClockSA,2、3、6、7 通道可选用ClockB、ClockSB 通道。该寄存器用来实现几个通道时钟源的选择。
用法: PCLK0 = 1 --- 通道0(PTP0)的时钟源设为ClockSA
PCLK2 = 0 --- 通道2(PTP2)的时钟源设为ClockB
1、PWM预分频寄存器PWMPRCLK
PWMPRCLK 寄存器每一位如图3 所示:
?
复位默认值:0000 0000B
图 3 PWMPRCLK 寄存器?
PWMPRCLK 寄存器包括ClockA预分频和ClockB预分频的控制位。ClockA、ClockB的值为总线时钟的1/2n (0≤n≤7),具体设置参照图4和图5
?
图 4 Clock A 预分频设置
图5 Clock B 预分频设置
PCKB0~PCKB2 是对ClockB进行预分频。
PCKA0~PCKA2 是对ClockA进行预分频。
2、PWM分频寄存器PWMSCLA、PWMSCLB
PWMSCLA 寄存器每一位如图 6所示:
图6 PWMSCLA寄存器
SA 是通过对 PWMSCLA 寄存器的设置来对ClockA 进行分频而产生的。其计算公式为:
Clock SA=Clock A /(2*PWMSCLA)
PWMSCLB 寄存器与PWMSCLA 寄存器相似,Clock SB 就是通过对PWMSCLB 寄存器的设置来对 ClockB 进行分频而产生的。其计算公式为:
Clock SB=Clock B /(2*PWMSCLB)
1、PWM极性选择寄存器PWMPOL
PWMPOL 寄存器每一位如图7 所示:
该寄存器是0~7通道PWM输出起始极性控制位,用来设置PWM输出的起始电平。
用法:PWMPOL_PPOL0=1--- 通道 0 在周期开始时输出为高电平,当计数器等于占空比寄存器的值时,输出为低电平。对外输出波形先是高电平然后再变为低电
文档评论(0)