dadian 发表于 2010-3-15 12:00:39

STC PWM设置问题

用STC做红外发射,调制38K的载波,用PWM模式,选用11.0592M的晶振,用T0的溢出率作为时钟源,经过计算T0的初值为1,不知正确与否,哪位做过的帮一下

rainyss 发表于 2010-3-15 13:48:32

135K都玩过,没问题的.请使用1T模式.

dadian 发表于 2010-3-15 18:34:22

能否说一下你是怎么计算的,用11.0592M晶振

dadian 发表于 2010-3-16 11:39:09

寻求帮助

xiaosars 发表于 2011-5-9 18:15:30

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

xiaosars 发表于 2011-5-10 09:22:11

啊,还是没有人看看呀

xiaosars 发表于 2011-5-10 09:26:52

啊,还是没有人看看呀

jrcsh 发表于 2011-5-10 10:31:14

STC 上的PDF 有 只是楼主~~~~~自己不查
页: [1]
查看完整版本: STC PWM设置问题