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

本文详细介绍了飞思卡尔单片机PWM模块的应用,重点解析了PWM寄存器的功能及其配置方法,包括PWM允许寄存器、极性寄存器与时钟选择寄存器等,并提供了一个PWM初始化的示例程序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

序:关于飞思卡尔单片机,大致用了大半年了,总结下关于一些PWM的模块应用,飞思卡尔单片机的一个麻烦的在于寄存器很多,仅是PWM模块就有36个寄存器,总共是十个寄存器。所以使用好飞思卡尔单片机就要学习下每一个寄存器。在这里,本人也是初学,大致写写自己的一些笔记吧。

北京理工大学珠海学院 徐方鑫 E-MAIL:280599580@qq.com

例程:

/*******************

//功能:完成PWM模块初始化

//入口参数:无

//出口参数:无

*******************/

void PWM_Init(void)

{

PWME=0x00; //禁止PWM模块

PWMPRCLK=0x06; //CLOCK A的预分频设置为6

PWMSCLA=125; //SA的分频因子设置为125

PWMCLK=0x01; //通道0选择SA作为PWM时钟

PWMPER0=200; //通道0周期寄存器设置为200

PWMDTY0=0; //通道0占空比寄存器设置

PWMPOL=0x01; //PWM输出先为高电平,之后变为低电平

PWMCAE=0x00; //左对齐输出

PWMCTL=0x00; //不级联

PWME=0x01; //使能PWM通道0

}

以上是一个基本的PWM初始化程序,利用了很多PWM的寄存器,下面就根据不同的寄存器讲解一下。

(1)PWM允许寄存器(PWMEnable Register)

PWME可以通过设置相应的控制位启动或者停止PWM信号的输出。但是,由于PMWMEx需要与时钟源同步,直到PWM模块时钟下一个周期到来,才能输出正确的PWM波形。

注:当处于级联模式时,8个8位PWM通道通过两两级联构成4个16位PWM通道,此时PWME1,PWME3,PWME5和PWME7对应控制4个16位PWM通道,而其他控制位无效。

Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0
读/写PWME7PWME6PWME5PWME4PWME3PWME2PWME1PWME0
复位值 00000000

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

1表示允许PWMx通道输出,0表示禁止PWMx通道输出

(2)PWM极性寄存器(PWM Polarity Register)

PWMPOL是极性寄存器,如果极性选择为是1,周期开始时PWM通道输出高电平,当通道计数器数值等于占空比计数值时翻转为低电平;相反,如果极性选择位是0,周期开始时PWM通道输出低电平,当通道计数器数值等于占空比计数器值时翻转为高电平。

注:PPOLx寄存器的位可以在任何时刻写入。如果正在产生PWM信号时改变极性,在转换过程中可能截短或延长输出脉冲。

Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0
读/写PROL7PROL6PROL5PROL4PROL3PROL2PROL1PROL0
复位值 00000000

1代表在周期开始时输出高电平(中心对齐),0代表在周期开始时输出为低电平(左对齐)

(3)PWM时钟选择寄存器(PWM Clock Select Register)

PWMCLKx可以选择两个时钟源作为该通道的时钟源。分别为CLOCK A和CLOCK SA,CLOCK B和CLOCK SB,其中CLOCK A和CLOCK B是直接由总线时钟得到,CLOCK SA和CLOCK SB是通过对CLOCK A或CLOCK B进行再次的分频得到,就是进行两次的分频。

注:PCLKx寄存器的位可以在任何时刻写入。如果正在产生PWM信号时改变极性,在转换过程中可能截短或延长输出脉冲。

其中CLOCK A或CLOCK SA控制0,1,4,5通道的PWM,CLOCK B或CLOCK SB控制2,3,6,7通道的PWM。

Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0
读/写PCLK7PCLK6PCLK5PCLK4PCLK3PCLK2PCLK1PCLK0
复位值 00000000

1表示选择CLOCK SB或CLOCK SA作为相应通道时钟源,0代表选择CLOCK A或者CLOCK B直接作为通道的时钟源。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值