飞思卡尔单片机PWM模块分析(3)

时间:2020-12-20 22:15:19

 接上,继续介绍飞思卡尔HCS12系列单片机的PWM模块

 

 (9)PWM通道计数寄存器(PWM Channel Counter Register)

PWMCNTx是PWM通道计数寄存器,可以在任何时刻读取该计数器数值,而不影响计数器和PWM通道的工作。计数器方向默认设定为向上计数,从周期寄存器和占空比寄存器的缓冲器中得到周期和占空比数值,人后根据极性选择位改变输出电平。

 

Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
复位值 0 0 0 0 0 0 0 0

读:任何时刻  写:任何时刻

注:在级联模式下,无论对16位计数器的访问还是对高八位和第八位分开访问,都会使计数器复位。读取16位计数器必须从16位方式访问,以保持数据的一致性,高8位和低8位分开读取会得到不正确的结果。

 

 (10)PWM通道周期寄存器(PWM Channel Period Register)

PWMPERx周期寄存器的值决定相应PWM通道的周期。周期寄存器的数值都是双缓冲的,因此,当寄存器中的数值改变后,并不生效。

Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
复位值 0 0 0 0 0 0 0 0

读:任何时刻  写:任何时刻

输出的PWM波形周期的计算方法是,用选择的时钟周期乘以周期寄存器的数值。

左对齐方式输出(CAEx=0)  PWMx周期=通道时钟周期*PWMPERx

居中对齐方式输出(CAEx=1)  PWMx周期=通道时钟周期*2*PWMPERx

 

 (11)PWM通道占空比寄存器(PWM Channel Duty Register)

PWMDTYx占空比寄存器,该寄存器的值决定相应PWM通道的占空比。占空比寄存器的数值都是双缓冲的,因此,当寄存器中的数值改变后,并不生效。

 

Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
复位值 0 0 0 0 0 0 0 0

读:任何时刻  写:任何时刻

PWM波形占空比计算公式如下:

极性为0时(PPOLx=0)

占空比=(PWMPERx-PWMDTYx)/ PWMPERx

极性为1时(PPOLx=1)

占空比=(PWMDTYx)/(PWMPERx)

注:无论左对齐输出还是居中对齐输出,只要PPOLx,PWMPERx和PWMDTYx寄存器的数值相同,输出波形的占空比也是相同的,只是居中对齐输出比左对齐输出的波形的周期大一倍。

 

(12)PWM关断寄存器(PWM Shutdown Register) 

PWMSDN具有在紧急情况下立即关断PWM通道输出的功能。

  Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
PWMIF PWMIE 0 PWM-LVL 0 PWM7IN PWM7IL PWM7-ENA
PWMR-STRT    
复位值 0 0 0 0 0 0 0 0

读:任何时刻  写:任何时刻

PWM7ENA:PWM紧急关断允许。

PWM7IL:紧急关断有效输入电平选择位。该位确定PWM通道7处于什么电平时,PWM模块才会被紧急关断。

PWM7IN:PWM通道7输入状态位。

PWMLVL:PWM紧急关断后输出电平选择位。

PWMRSTRT:PWM重新启动控制位。

PWMIE:PWM中断允许。

PWMIF:PWM中断标志。

 

PWM模块就介绍到此了,下次更新PLL时钟设定。