飞思卡尔单片机PWM模块分析(3)
2010-10-27 20:31
246 查看
接上,继续介绍飞思卡尔HCS12系列单片机的PWM模块
(9)PWM通道计数寄存器(PWM Channel Counter Register)
PWMCNTx是PWM通道计数寄存器,可以在任何时刻读取该计数器数值,而不影响计数器和PWM通道的工作。计数器方向默认设定为向上计数,从周期寄存器和占空比寄存器的缓冲器中得到周期和占空比数值,人后根据极性选择位改变输出电平。
读:任何时刻 写:任何时刻
注:在级联模式下,无论对16位计数器的访问还是对高八位和第八位分开访问,都会使计数器复位。读取16位计数器必须从16位方式访问,以保持数据的一致性,高8位和低8位分开读取会得到不正确的结果。
(10)PWM通道周期寄存器(PWM Channel Period Register)
PWMPERx周期寄存器的值决定相应PWM通道的周期。周期寄存器的数值都是双缓冲的,因此,当寄存器中的数值改变后,并不生效。
读:任何时刻 写:任何时刻
输出的PWM波形周期的计算方法是,用选择的时钟周期乘以周期寄存器的数值。
左对齐方式输出(CAEx=0) PWMx周期=通道时钟周期*PWMPERx
居中对齐方式输出(CAEx=1) PWMx周期=通道时钟周期*2*PWMPERx
(11)PWM通道占空比寄存器(PWM Channel Duty Register)
PWMDTYx占空比寄存器,该寄存器的值决定相应PWM通道的占空比。占空比寄存器的数值都是双缓冲的,因此,当寄存器中的数值改变后,并不生效。
读:任何时刻 写:任何时刻
PWM波形占空比计算公式如下:
极性为0时(PPOLx=0)
占空比=(PWMPERx-PWMDTYx)/ PWMPERx
极性为1时(PPOLx=1)
占空比=(PWMDTYx)/(PWMPERx)
注:无论左对齐输出还是居中对齐输出,只要PPOLx,PWMPERx和PWMDTYx寄存器的数值相同,输出波形的占空比也是相同的,只是居中对齐输出比左对齐输出的波形的周期大一倍。
(12)PWM关断寄存器(PWM Shutdown Register)
PWMSDN具有在紧急情况下立即关断PWM通道输出的功能。
读:任何时刻 写:任何时刻
PWM7ENA:PWM紧急关断允许。
PWM7IL:紧急关断有效输入电平选择位。该位确定PWM通道7处于什么电平时,PWM模块才会被紧急关断。
PWM7IN:PWM通道7输入状态位。
PWMLVL:PWM紧急关断后输出电平选择位。
PWMRSTRT:PWM重新启动控制位。
PWMIE:PWM中断允许。
PWMIF:PWM中断标志。
PWM模块就介绍到此了,下次更新PLL时钟设定。
(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时钟设定。
相关文章推荐
- 飞思卡尔单片机PWM模块分析(2)
- 飞思卡尔单片机PWM模块分析(1)
- 飞思卡尔XS128系列(二) PWM模块
- 飞思卡尔XS128系列(二) PWM模块
- STC15系列单片机-PWM模块
- STC单片机硬件PWM的使用分析
- 飞思卡尔PWM模块
- 飞思卡尔单片机DZ60---中央对齐PWM
- 飞思卡尔单片机DZ60---边沿对齐PWM
- 分析 ddp pwm 模块
- 飞思卡尔单片机PLL时钟总线模块
- Nginx源码分析 - 实战篇 - 编写一个自定义的模块
- seajs模块压缩问题与解决方法实例分析
- MTK平台学习--FileManager模块分析
- Glusterfs之rpc模块源码分析(中)之Glusterfs的rpc模块实现(1)
- [2.0.0]用户session分析模块之需求分析与数据设计
- [Leveldb]源码分析之二 Cache模块的实现
- OpenStack中网络模块(Neutron)的代码分析
- Glusterfs之rpc模块源码分析(下)之RDMA over TCP的协议栈工作过程浅析