PIC16F877的Timer2与CCP模块的PWM
与Timer2有关的寄存器
PWM模式
一个PWM输出包含一个时基(周期)和一段输出高电平的时间(占空比)。PWM的频率是周期的倒数(1/周期)。
PWM周期可通过写入PR2 寄存器来规定,可用以下公式计算:
PWM 频率 (FPWM)定义为1/[PWM周期]。
当TMR2 等于PR2 时,在下一递增计数周期中将产生下面三个事件:
• TMR2 被清零
• CCPx 引脚被置1( 例外情况:如果PWM占空比 =0%, CCPx 不被置1)
• PWM 占空比从CCPRxL 被锁定为 CCPRxH
PWM占空比可通过写入CCPRxL寄存器和DCxB1:DCxB0(CCPxCON<5:4>)位来规定。最高分辨率可达10位:由CCPRxL 中的高8位和CCPxCON<5:4>中的低2位组成。这一10位值由DCxB9:DCxB0来表征。计算 PWM 占空比的公式如下:
DCxB9:DCxB0的值可以在任何时候写入,但直到PR2与TMR2中的值相符(当前周期结束)时,占空比的值才被锁存到CCPRxH。在PWM模式下,CCPRxH是只读寄存器。CCPRxH 寄存器和一个2位的内部锁存器用于为PWM占空比提供双重缓冲。双重缓冲对PWM的无毛刺操作是极其重要的。当CCPRxH和2位锁存器的值与TMR2和内部2位Q时钟(或TMR2分频器的2位)串接值相符时,CCPx引脚被清零。此时占空比结束。对于给定的PWM频率,其最大分辨率(位)为:
计算举例:
通过以下步骤将CCP模块配置为PWM模式:
1. 写入PR2寄存器以设定PWM周期。
2. 写入DCxB9:DCxB0位以设置PWM占空比。
3. 将相应的TRIS位清零以将CCPx引脚设为输出。
4. 写入T2CON以设置TMR2预分频比并使能 Timer2。
5. 将CCP模块配置为PWM模式。
PIC16F877Timer2CCP模块PW 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)