打印
[STC单片机]

stc12c5a60s2产生PWM波的程序

[复制链接]
1877|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cylyxq|  楼主 | 2013-10-19 22:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这是小弟写的一个用stc12c5a60s2产生PWM波的程序,但不知道为什么PCA/PWM的计数器一直不计数,导致CL的值一直是0,无法与CCAP0L的值进行比较产生PWM波,希望各位高手不吝赐教

#include<STC12C5A60S2.H>
#define uint unsigned int
#define uchar unsigned char
#define SYSCLK  11059200L
sbit PWM=P1^3;

uchar b=0,aa,c=0,d,e,i;

void init()
{
        CCON=0;
        CL=0;
        CH=0;
        CMOD=0x0a;
        CCAPM0=0x42;       
          IPH=0x08;
        IP=0x08;
        AUXR=0x01;
        CR=1;
}


void main()
{
        init();
       
        while(1)
        {       
                CCAP0H=CCAP0L=0xcc;             
                if(CL!=0xff)
                {
                     if(CL<CCAP0L)            
                           PWM=0;
                     else
                           PWM=1;
                               
                }
                else
                {
                        CL=0;
                        CCAP0L=CCAP0H;
                }
               
        }

}

相关帖子

沙发
McuPlayer| | 2013-10-19 23:15 | 只看该作者
这个IC是有硬件PWM的,你软硬一起用会乱套的

使用特权

评论回复
板凳
cylyxq|  楼主 | 2013-10-20 10:02 | 只看该作者
McuPlayer 发表于 2013-10-19 23:15
这个IC是有硬件PWM的,你软硬一起用会乱套的

我是按照它的数据手册来写的,里面好像没提到硬件PWM波啊,关键是写入CR=1之后,PCA计时器不工作是怎么一回事啊,麻烦您再解释清楚一些,O(∩_∩)O谢谢!

使用特权

评论回复
地板
McuPlayer| | 2013-10-21 00:15 | 只看该作者
PCA可工作于PWM模式,你看看那个寄存器的设置吧

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

17

帖子

0

粉丝