mc9s12xs128程序教程
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
711 次
该寄存器是 0~7 通道 PWM 输出起始极性控制位,用来设置 PWM 输出的起始 电平。
用法:PWMPOL_PPOL0=1--- 通道 0 在周期开始时输出为高电平,当计数 器等于占空比寄存器的值时,输出为低电平。对外输出波形先是高电平然后再变 为低电平。
2、PWM 波形对齐寄存器 PWMCAE
该控制寄存器设定通道的级联和两种工作模式:等待模式和冻结模式。这 两种模式如图 10 和图 11 所示。
图 10 等待模式
图 11 冻结模式
只有当相应的通道关闭后,才能改变 这些控制字。 用法: PWMCTL_CON67=1 --- 通道6、7 级联成一个 16 位的 PWM 通道。此 时只有7 通道的控制字起作用,原通道 7 的使能位、PWM 输出极性选择位、时 钟选择控制位以及对齐方式选择位用来设置级联后的 PWM 输出特性 PWMCTL_CON67=0 --- 通道6,7 通道不级联 CON45、CON23、CON01 的用法同 CON67 相似。设置此控制字的意 义在于扩大了PWM 对外输出脉冲的频率范围。 PSWAI=1 --- MCU 一旦处于等待状态,就会停止时钟的输入。这样就不 会因时钟在空操作而费电;当它置为0,则MCU 就是处于等待状态,也允许 时钟的输入。 PFRZ=1 --- MCU 一旦处于冻结状态,就会停止计数器工作。 (责任编辑:dzsj8)
1、PWM 预分频寄存器 PWMPRCLK
PWMPRCLK 寄存器每一位如图 3 所示:
复位默认值:0000 0000B
813 次
图3 PWMPRCLK 寄存器
PWMPRCLK 寄存器包括 ClockA 预分频和 ClockB 预分频的控制位。ClockA、 ClockB 的值为总线时钟的 1/2n (0≤n≤7),具体设置参照图 4 和图 5
Clock SB=Clock B /(2*PWMSCLB)
(责任编辑:dzsj8)
手把手教你写 S12XS128 程序(4)--PWM 寄存器说明 3
时间:2009-11-26 07:09 来源:电子设计吧 作者:dzsj8 点击:
1、PWM 极性选择寄存器 PWMPOL
PWMPOL 寄存器每一位如图 7 所示:
用法: PWME7=1 --- 通道 7 可对外输出波形
PWME7=0 --- 通道 7 不能对外输出波形
注意:在通道使能后所输出的第一个波形可能是不规则的。当输出通道 工作在串联模式时(PWMCTL 寄存器中的 CONxx 置 1),那么)使能相应 的 16 位 PWM 输 出通 道 是 由 PWMEx 的 高 位 控 制 的,例如 :设置 PWMCTL_CON01 = 1,通道 0、1 级联,形成一个 16 位 PWM 通道,由通道 1 的使 能位控制 PWM 的输出。
*有效的周期结束。 *对计数器进行写操作(计数器复位) *通道不可用(PWMEx = 0) 这样就会使PWM 输出波形要么是新波形要么是旧波形,并不会在两者之 间 进行交替变换。如果通道没有被激活,那么对占空比常数寄存器进行写操 作,将会直接导致周期寄存器同缓冲器一起闭锁。 当计数值与占空比常数PWMDTY 相等时,则比较输出器有效,这时就会将 触发器置位,然后PWMCNT 继续计数,当计数值与周期常数PWMPER 相等时, 比较器输出有效,将触发器复位,同时也使PWMCNT 复位,结束一个输出周期。
图13 PWMPER0 寄存器
3、PWM 通道占空比寄存器 PWMDTYx
PWMDTYx 寄存器也有 8 个,每一个通道都有一个这样的占空比常数
寄存 器。这个寄存器的值就决定了相关PWM 通道输出波形的占空比。每一个 通道的 占空比寄存器都是双缓冲的,因此如果当通道被激活后,改变他们的 值将不会发生任何作用,除非当下列情况之一发生:
Clock SA 是通过对PWMSCLA 寄存器的设置来对 ClockA 进行分频而产生 的。其计算公式为:
Clock SA=Clock A /(2*PWMSCLA)
PWMSCLB 寄 存 器 与 PWMSCLA 寄 存 器 相 似 , Clock SB 就 是 通 过 对 PWMSCLB 寄存器的设置来对ClockB 进行分频而产生的。其计算公式为:
图4 Clock A 预分频设置
图 5Clock B 预分频设置 PCKB0~PCKB2 是对 ClockB 进行预分频。 PCKA0~PCKA2 是对 ClockA 进行预分频。
2、PWM 分频寄存器 PWMSCLA、PWMSCLB
PWMSCLA 寄存器每一位如图6 所示:
图6PWMSCLA 寄源自器手把手教你写 S12XS128 程序(6)--PWM 寄存器说明 5
时间:2009-11-26 07:30 来源:电子设计吧 作者:dzsj8 点击: 771 次
1、PWM 通道计数寄存器 PWMCNTx
PWMCNTx 寄存器共有8 个,每一个通道都有一个 8 位 PWM 加/减双向计 数器,通道级联后可变成 16 位 PWM 加/减双向计数器。下面以 PWMCNT0 为例 对PWMCNTx 寄存器进行介绍。 PWMCNT0 寄存器如图12 所示:
第一讲:HCS12 原理及应用--PWM 模块介绍
时间:2009-11-25 22:51 来源:电子设计吧 作者:dzsj8 点击: 1115 次 该教程以 MC9S12DG128 单片机为核心进行讲解,全面阐释该 16 位单片
机资源。本文为第一讲,开始介绍该 MCU 的 PWM 模块。 PWM 调制波有8 个输出通道,每一个输出通道都可以独立的进行输出。
用法: PCLK0 = 1 --- 通道 0(PTP0)的时钟源设为 ClockSA PCLK2 = 0 --- 通道 2(PTP2)的时钟源设为 ClockB
(责任编辑:dzsj8)
第 3 讲:HCS12 原理及应用--PWM 寄存器说明 2
时间:2009-11-25 22:58 来源:电子设计吧 作者:dzsj8 点击:
图12 PWMCNT0 寄存器
计数器以所选时钟源的频率运行。计数器在任何时候都可以被读,而不影 响计数,也不影响对PWM 通道的操作。 任何值写入 PWMCNT0 寄存器都会导致计数器复位置 0,且其计数方向 会 被设置为向上计数,并且会立刻从缓冲器载入任务和周期值,并会根据翻转 极性的设置来改变输出。当计数器达到计数值后,会自动清零。只有当通道使 能后,计数器才开始计数。
(责任编辑:dzsj8)
图7 PWMPOL 寄存器
手把手教你写 S12XS128 程序(5)--PWM 寄存器说明 4
时间:2009-11-26 07:22 来源:电子设计吧 作者:dzsj8 点击:
1、PWM 控制寄存器 PWMCTL
PWMCTL 寄存器每一位如图9 所示:
696 次
图9 PWMCTL 寄存器
每 一个输出通道都有一个精确的计数器(计算脉冲的个数),一个周期控制寄 存器 和两个可供选择的时钟源。每一个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、每一个通道都可以通过编程实现左对齐输出还是居中对齐输出。 (责任编辑:dzsj8)
2、PWM 时钟选择寄存器 PWMCLK
PWMCLK 寄存器每一位如图 3 所示:
复位默认值:0000 0000B
图 2 PWMCLK 寄存器 S12 的 PWM 共有四个时钟源,每一个PWM 输出通道都有两个时钟可供选 择(ClockA、ClockSA 或 Clock B、ClockSB))。其中 0、1、4、5 通道可选用 ClockA 和 ClockSA,2、3、6、7 通道可选用 ClockB、ClockSB 通道。该寄存 器用来实现几个通道时钟源的选择。
2、PWM 通道周期寄存器 PWMPERx
PWMPERx 寄存器共有8 个,每一个通道都有一个这样的周期寄存器。这 个 寄存器的值就决定了相关PWM 通道的周期。每一个通道的周期寄存器都 是双缓 冲的,因此如果当通道使能后,改变他们的值,将不会发生任何作用, 除非当下列情况之一发生:
*有效的周期结束。 *对计数器进行写操作(计数器复位) *通道不可用(PWMEx = 0) 这样就会使PWM 输出波形要么是新波形要么是旧波形,并不会在两者之 间 进行交替变换。如果通道不可用,那么对周期寄存器进行写操作,将会直接 导致 周期寄存器同缓冲器一起闭锁。图13 所示的是PWMPER0 寄存器:
/*******************************************************************/
图 14 PWM 左对齐方式 2、中心对齐方式
在该方式下,脉冲计数器为双向计数,计数初值为 0 。 当 PWM 使能后,计数器 PWMCNT 从 0 开始对时钟信号递增计数,开始输出一个 周期。当计数器与占空比常数寄存器 PWMDTY 相等时,比较器 1 输出有效,触发器 翻转,而 PWMCNT 继续计数,当计数值与周期常数 PWMPER 相等时,比较器 2 输出 有效,此时改变 PWMCNT 的计数方向,使其递解计数;当 PWMCNT 再次与 PWMDTY 相 等时,比较器 1 再一次输出有效,使触发器再次翻转,而 PWMCNT 继续递减计数, 等待 PWMCNT 减回至 0,完成一个输出周期。原理参照图 15: /********************************************************************/ 玉良理解的就是计数器的值先增加到与 PWMDTY 相等后,比较器 1 置位,而计数器 继续计数,当数值与 PWMPER 中的值相等后,改变其计数方向,改为递减计数,当 再一次与 PWMDTY 中的值相等后,比较器再一次输出有效,使触发器反转,而计数 器继续递减计数直到计数器的值为 0,从而完成一个输出周期。 /*********************************************************************/
在该方式下,脉冲计数器为循环递增计数,计数初值为 0 。
当 PWM 使能后,计数器 PWMCNT 从 0 开始对时钟信号递增计数,开始一个输出 周期。当计数值与占空比常数寄存器 PWMDTY 相等时,比较器 1 输出有效,将触发 器置位(变为高电平),而 PWMCNT 继续计数;当计数值与周期常数寄存器 PWMPER 相等时,比较器 2 输出有效,将触发器复位(变为低电平),同时 PWMCNT 也复位, 结束一个输出周期。原理参照图 14:
/********************************************************************/
玉良理解的就是,计数器的值一直增加,当先与 PWMDTY 的值相等后,置位,而计 数器继续计数,当计数器的值与 PWMPER 的值相等后,变为低电平,从而完成一个 输出周期。
第 2 讲:HCS12 原理及应用--PWM 寄存器说明 1
时间:2009-11-25 22:56 来源:电子设计吧 作者:dzsj8 点击: 902 次
1、PWM 启动寄存器 PWME
PWME 寄存器每一位如图1 所示:
复位默认值:0000 0000B
图1 PWME 寄存器 每一个 PWM 的输出通道都有一个使能位PWMEx 。它相当于一个开 关,用来启动和关闭相应通道的 PWM 波形输出。当任意的PWMEx 位 置1,则相关的PWM 输出通道就立刻可用。
PWMCAE 寄存器每一位如图8 所示:
图8 PWMCAE 寄存器 PWMCAE 寄存器包含8 个控制位来对每个PWM 通道设置左对齐输出或中心
对齐输出。
用法: PWMCAE_CAE0 = 1 --- 通道 0 中心对齐输出 PWMCAE_CAE7 = 0 --- 通道 7 左对齐输出
注意:只有输出通道被关闭后才能对其进行设置,即通道被激活后不能对其进 行设置。
(责任编辑:dzsj8)
手把手教你写 S12XS128 程序(7)--PWM 工作原理
时间:2009-11-27 15:44 来源:电子设计吧 作者:dzsj8 点击: 826 次 S12 微控制器 PWM 模块是由独立运行的 8 位脉冲计数器 PWMCNT、两个比较寄
存器 PWMPER 和 PWMDTY 组成。 1、左对齐方式