STC PWM设置问题
用STC做红外发射,调制38K的载波,用PWM模式,选用11.0592M的晶振,用T0的溢出率作为时钟源,经过计算T0的初值为1,不知正确与否,哪位做过的帮一下 135K都玩过,没问题的.请使用1T模式. 能否说一下你是怎么计算的,用11.0592M晶振 寻求帮助 STC12C5410系列的/************************************T0 T1初始化************************************/
void T0_init(void)
{
TMOD=0X12;
TL0=0xF2; //定时器0作为PWM时钟源
TH1=0xF2;
TR0=1; //
TF0=0;
ET0=0; //T0禁止中断
}
void PWM_init(void)
{
P3M0=0x00;
P3M1=0X80;
CMOD=0x84;//设置PCA定时器时钟源为定时器0溢出,空闲时停止计数
CCON=0x00;
CCAPM0=0x42; //8位PWM,ECOMn=1使能比较器,PWMn=1使能CEXn脚用作脉宽调节输出
CL=0;
CH=0;
PCA_PWM0=0x00;
CCAP0L=0;
CCAP0H=0;
CR=1;
}
void PWM_duty_set(uint8 duty)
{
if(duty==0xFF)
{
PCA_PWM0=0x03;
CCAP0L=255;
CCAP0H=255;
}
else
{
PCA_PWM0=0x00;
CCAP0L=duty;
CCAP0H=duty;
}
}
用T0作为PWM时钟源,PWM频率=PCA时钟输入源频率/256
T0为8位自动重装模式,初始值为0xF2,那么计时周期应该是=(12/晶振频率)*(2的8次方-0xF2)
可是不知道为什么,不管怎么调节TL0和TH0的值,用示波器测得的PWM频率总是14.06Hz 啊,还是没有人看看呀 啊,还是没有人看看呀 STC 上的PDF 有 只是楼主~~~~~自己不查
页:
[1]