STC12C5A60S2系列微控制器PCA時鐘源設定
阿新 • • 發佈:2018-12-11
在使用STC12C5A60S2系列微控制器PCA輸出PWM時需要設定PCA時鐘源,如以下程式碼
連結地址:https://blog.csdn.net/Xiaomo_haa/article/details/84189798
void PCA_Init(void) { CCON = 0; //PCA初始化 CMOD = 0x00; //空閒時不計數,不產生中斷,時鐘源為Sysclk/12,PWM頻率大約為4KHz CL = 0x00; //PCA低8位清零 CH = 0x00; //PCA高8位清零 CCAPM0 = 0x42; //8位PWM模式,無中斷 CCAP0H = 0xc0; //PWM0佔空比(調節此處值調節PWM佔空比) CCAP0L = 0xc0; //PWM0佔空比(調節此處值調節PWM佔空比) CCAPM1 = 0x42; //8位PWM模式,無中斷 CCAP1H = 0x40; //PWM1佔空比(調節此處值調節PWM佔空比) CCAP1L = 0x40; //PWM1佔空比(調節此處值調節PWM佔空比) CR = 1; //啟動PCA計數器 }
其中CMOD暫存器結構如下圖所示:
其中CPS2、CPS1、CPS0為PCA計數脈衝源選擇控制位。
PCA計數脈衝選擇具體如下所示:
CPS2 | CPS1 | CPS0 | 選擇PCA/PWM時鐘源輸入 |
0 | 0 | 0 | 0,系統時鐘/12,SYSclk/12 |
0 | 0 | 1 | 1,系統時鐘/2,SYSclk/2 |
0 | 1 | 0 | 2,定時器0的溢位脈衝。由於定時器0可以工作在1T模式,所以達到記一個時鐘就溢位,從而達到最高頻率CPU工作時鐘SYSclk。通過改變定時器0的溢位率,可以實現可調頻率的PWM輸出。 |
0 | 1 | 1 | 3,ECI/P1.2(或P4.1)腳輸入的外部時鐘(最大速率 = SYSclk/2) |
1 | 0 | 0 | 4,系統時鐘,SYSclk |
1 | 0 | 1 | 5,系統時鐘/4,SYSclk/4 |
1 | 1 | 0 | 6,系統時鐘/6,SYSclk/6 |
1 | 1 | 1 | 7,系統時鐘/8,SYSc/8 |