STC15 PWM频率

STC15的PWM输出频率计算:

PCA初始化时,PCA_Clock_1T时,频率为系统频率/256。

22.1184M时,PWM为86.4K Hz

我要一个更低的频率怎么做呢?

PCA_Clock_12T 频率也为7.2K,只有降低时钟频率了,最低降为5.5296M的时候,5.5296M/256/12为1.8K。

现在,只能再进行分频了,SYSTEM_CLK_4T(),使系统时钟变为1.3824M,这样,PWM频率为540Hz

程序:


#include "config.h"
#include "delay.h"
#include "PCA.h"
#include "ADC.h"
/************* 本地函数声明 **************/
void timer0_int (void) interrupt TIMER0_VECTOR //timer0用来调度定时任务。
{
UpdatePwm(PCA0,255-GetADCResult(0));
UpdatePwm(PCA1,255-GetADCResult(1));
UpdatePwm(PCA2,255-GetADCResult(2));
WDT_reset(4);//喂狗
}
/**********************************************/
void main(void)
{
SYSTEM_CLK_4T();
Timer0_16bitAutoReload();//16位模式
Timer0_AsTimer();//定时器模式
Timer0_1T();
TL0 = 0x9A; //设置定时初值1ms
TH0 = 0xA9; //设置定时初值
Timer0_InterruptEnable();//使能定时器0
PCA_config(); //PWM配置
InitADC(); //初始化ADC
EA = 1;//使能总中断
delay_ms(1);
delay_3us(1);
delay_us(1);
Timer0_Run(); //完成初始化定时器0开始计时
while (1)
{
}

}

 

此条目发表在待分类分类目录。将固定链接加入收藏夹。