標(biāo)題: [求助]stc12c5410ad的PWM波形輸出 [打印本頁]

作者: coney    時(shí)間: 2010-12-21 21:01
標(biāo)題: [求助]stc12c5410ad的PWM波形輸出

最近在使用stc12c5410ad的PWM模塊功能,輸出固定頻率可調(diào)占空比的PWM波,下面是我寫的程序,產(chǎn)生25%和50%占空比的PWM波:


 /******************************************************************************
  功能:固定頻率39kHz的可調(diào)脈寬的PWM
  系統(tǒng)時(shí)鐘 :20MH


 ********************************************************************************/
 #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時(shí)鐘源來自系統(tǒng)時(shí)鐘 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%……循環(huán)下去;(百分比為PWM的占空比,代表一個(gè)波形,波形就不畫了)


可是我用示波器觀察輸出結(jié)果,波形輸出順序:25%,50%,25%,50%,50%,50%,25%,50%,25%,50%,50%,50%,25%……。多出了兩個(gè)占空比50%的脈沖信號(hào),請(qǐng)高手幫我看看程序是不是有什么問題,感覺問題出現(xiàn)在PWM占空比的賦值上,但又不知道具體是什么。



作者: x-lichking    時(shí)間: 2010-12-23 09:49

程序很簡(jiǎn)單,應(yīng)該沒錯(cuò)。我建議你加個(gè)led燈來判斷一下 執(zhí)行的步驟問題。

 

我懷疑你的STC芯片自己復(fù)位了。我遇到過自己復(fù)位的情況。 你在while(1) 上面加一個(gè)開機(jī)LED的閃爍 看看啥情況。


作者: 黃效忠    時(shí)間: 2013-11-7 15:15
ccapoh=ccapol=table[i];
作者: pengyongnet    時(shí)間: 2021-8-10 18:34
還有定時(shí)器的初始啊化
作者: gqzjl    時(shí)間: 2021-8-19 09:40
CCAP0H=CCAP0L=table[i];
作者: wylyhz999    時(shí)間: 2021-8-25 17:57
10年了,樓主對(duì)自己提出的這個(gè)問題是否有新的見解




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1