stc12c5410ad的PWM波形输出

2019-03-24 20:07发布

最近在使用stc12c5410ad的PWM模块功能,输出固定频率可调占空比的PWM波,下面是我写的程序,产生25%和50%占空比的PWM波:    /******************************************************************************
  功能:固定频率39kHz的可调脉宽的PWM
  系统时钟 :20MHz      ********************************************************************************/
 #include <stc12c5410ad.h>
 #define uchar unsigned char
 #define uint unsigned int  uchar code table[]={0xc0,0x80};  //占空比 分别为 25%,50%
 uchar i;  void main()
 {
  CCON=0;     //初始化PCA寄存器
 CL=0;
 CH=0;
 CMOD=0x02;   //PCA时钟源来自系统时钟 f/2
 CCAPM0=0x42;  //PCA工作在PWM模式
 CR=1;         //开启PCA timer
 while(1)
 {
  for(i=0;i<2;i++)
  {
   CCAP0H=CCAP0L=table;
   while(CL!=0xff);
  }
 }  }   我想得到波形输出顺序:25%,50%,25%,50%,25%,50%……循环下去;(百分比为PWM的占空比,代表一个波形,波形就不画了) 可是我用示波器观察输出结果,波形输出顺序:25%,50%,25%,50%,50%,50%,25%,50%,25%,50%,50%,50%,25%……。多出了两个占空比50%的脉冲信号,请高手帮我看看程序是不是有什么问题,感觉问题出现在占空比的赋值上,但又不知道具体是什么。
[ 本帖最后由 coney 于 2010-12-21 18:13 编辑 ] 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
6条回答
x-lichking
2019-03-25 05:37
少了个 楼上别较真。

我在另外一个论坛上也看到你的这个帖子。你最好还是加个LED看看 STC是不是自己复位了。我以前遇到过STC自己复位循环的情况。

程序这么简单,应该不是程序本身的事

一周热门 更多>