接上,继续介绍飞思卡尔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时钟设定。