欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: PWM兩通道不能同時(shí)用? [打印本頁(yè)]

作者: YYYYYU    時(shí)間: 2026-2-18 09:12
標(biāo)題: PWM兩通道不能同時(shí)用?
void PCA_Init(void)               
{        CL = 0;                        
        CH = 0;
        CMOD = 0x0E;                    // 設(shè)置PCA時(shí)鐘頻率 SYSclk/8
        CCAP0H = CCAP0L = 0x3F;         //
        CCAPM0 = 0x42;                  //
        PCA_PWM0 = 0x03;
        CCAP1H = CCAP1L = 0x80;         //
        CCAPM1 = 0x42;                  //PCA工作模式PWM無(wú)中斷
        PCA_PWM1 = 0x03;                                                //
        CR = 1;                                                                         //PCA計(jì)數(shù)器啟動(dòng)  CCON.6
        
//        CMOD|=1<<0;                            //PCA溢出中斷使能   
}

型號(hào)STC12C5A60S2  測(cè)試發(fā)現(xiàn)PWM兩通道不能同時(shí)打開(kāi),只能一個(gè)一個(gè)的來(lái),不知問(wèn)題出現(xiàn)哪里

用示波器觀賽的
作者: WL0123    時(shí)間: 2026-2-19 09:05
這PWM初始化程序沒(méi)有問(wèn)題,查查應(yīng)用程序。
作者: YYYYYU    時(shí)間: 2026-2-19 09:18
沒(méi)有什么應(yīng)用,只是功能測(cè)試。用示波器觀察發(fā)現(xiàn)的問(wèn)題
作者: WL0123    時(shí)間: 2026-2-19 11:41
YYYYYU 發(fā)表于 2026-2-19 09:18
沒(méi)有什么應(yīng)用,只是功能測(cè)試。用示波器觀察發(fā)現(xiàn)的問(wèn)題

仔細(xì)看了一下是模式設(shè)置錯(cuò)誤 PCA_PWM0 = 0x03;  實(shí)際只有3種設(shè)置  PCA_PWM0 = 0x00 //8位PMW,PCA_PWM0 = 0x40 //7位PMW,PCA_PWM0 = 0x80 //6位PMW。

作者: YYYYYU    時(shí)間: 2026-2-19 13:48
發(fā)表于 2026-2-19 11:41
仔細(xì)看了一下是模式設(shè)置錯(cuò)誤 PCA_PWM0 = 0x03;  實(shí)際只有3種設(shè)置  PCA_PWM0 = 0x00 //8位PMW,PCA_PWM0 = ...

你說(shuō)的是什么型號(hào)。STC12C5A60S2 PCA_PWMx只有bit1 bit0 兩個(gè)位, 0x80怎么設(shè)置。
不過(guò)資料的資料太簡(jiǎn)單,跟沒(méi)說(shuō)一樣!
作者: WL0123    時(shí)間: 2026-2-19 17:16
YYYYYU 發(fā)表于 2026-2-19 13:48
你說(shuō)的是什么型號(hào)。STC12C5A60S2 PCA_PWMx只有bit1 bit0 兩個(gè)位, 0x80怎么設(shè)置。
不過(guò)資料的資料太簡(jiǎn)單 ...

手上沒(méi)有STC12C5A60S2,是用IAP15W4K58S測(cè)試的,兩者PWM模式設(shè)置確有區(qū)別。
作者: kpffq    時(shí)間: 2026-2-20 00:17
PWM應(yīng)配置IO選擇和IO輸出允許,仔細(xì)看看手冊(cè)
作者: 白水大蝦2016    時(shí)間: 2026-2-20 13:12
只要足夠的I/O ,N個(gè)通道都可以呀!
作者: 118arar    時(shí)間: 2026-2-20 16:59
核心問(wèn)題定位與解決方案

你遇到的STC12C5A60S2兩路PCA PWM無(wú)法同時(shí)輸出,核心問(wèn)題出在CCAPMn寄存器配置錯(cuò)誤,同時(shí)補(bǔ)充其他常見(jiàn)坑的排查方案。

 

一、核心錯(cuò)誤:PWM模式未正確使能

你當(dāng)前代碼中  CCAPM0 = 0x42 、 CCAPM1 = 0x42  是錯(cuò)誤的:

-  0x42  二進(jìn)制為  0100 0010 ,對(duì)應(yīng)STC12的CCAPMn寄存器定義:
- Bit2(PWMn,PWM模式使能位)= 0,根本沒(méi)有開(kāi)啟PWM模式
- 僅開(kāi)啟了Bit1(ECOMn,比較器使能)和Bit6(CAPPn,上升沿捕獲),屬于捕獲/比較模式,并非PWM輸出模式

正確配置:
要開(kāi)啟PWM模式,必須同時(shí)置1 ECOMn(Bit1) 和 PWMn(Bit2):

- 無(wú)需捕獲功能: CCAPMn = 0x06 (二進(jìn)制  0000 0110 )
- 保留上升沿捕獲(和你原代碼兼容): CCAPMn = 0x46 (二進(jìn)制  0100 0110 )

 

二、修正后的完整初始化代碼

c
  
void PCA_Init(void)
{
    CL = 0;
    CH = 0;
    CMOD = 0x0E;  // PCA時(shí)鐘 = 系統(tǒng)時(shí)鐘/8,你的配置正確
   
    // 通道0 PWM配置(對(duì)應(yīng)IO:P1.3)
    CCAP0H = 0x3F;  // 僅設(shè)置高8位,硬件會(huì)自動(dòng)加載到CCAP0L,無(wú)需手動(dòng)賦值CCAP0L
    CCAPM0 = 0x46;  // 修正:開(kāi)啟PWM模式+比較器+上升沿捕獲,無(wú)中斷
    PCA_PWM0 = 0x00; // 修正:默認(rèn)8位PWM(你原代碼0x03是10位模式,普通場(chǎng)景用8位更穩(wěn)定)
   
    // 通道1 PWM配置(對(duì)應(yīng)IO:P1.4)
    CCAP1H = 0x80;  // 僅設(shè)置高8位
    CCAPM1 = 0x46;  // 修正:和通道0一致,正確開(kāi)啟PWM模式
    PCA_PWM1 = 0x00; // 8位PWM模式
   
    CR = 1;  // 啟動(dòng)PCA計(jì)數(shù)器,你的配置正確
    // CMOD|=1<<0;  // 無(wú)需溢出中斷,保持注釋即可
}
 

 

三、其他必查的常見(jiàn)坑

1. IO口配置確認(rèn)
STC12C5A60S2的PCA輸出引腳是固定的:
- CEX0(通道0)→ P1.3
- CEX1(通道1)→ P1.4
確保這兩個(gè)IO口沒(méi)有被其他功能占用,且沒(méi)有被設(shè)置為高阻輸入。如需更強(qiáng)驅(qū)動(dòng)能力,可設(shè)置為推挽輸出:

c
  
P1M0 |= 0x18; // P1.3、P1.4 推挽輸出
P1M1 &= ~0x18;
 
2. 10位PWM模式注意事項(xiàng)
如果你確實(shí)需要10位PWM(保留 PCA_PWMn=0x03 ),則占空比計(jì)算需要匹配10位寬度,不能直接用8位的 0x3F 、 0x80 ,否則會(huì)出現(xiàn)占空比異常,甚至看起來(lái)無(wú)輸出。
3. 占空比測(cè)試建議
調(diào)試時(shí)先將兩路占空比都設(shè)為50%( CCAPnH=0x80 ),方便示波器快速確認(rèn)是否有輸出,避免占空比極端值導(dǎo)致誤判。

 

四、為什么你之前“單個(gè)通道能輸出”

大概率是你測(cè)試單通道時(shí),不小心修改了CCAPMn的配置(比如誤寫(xiě)成0x46),或者單通道下比較模式的翻轉(zhuǎn)輸出被你誤判為PWM輸出,雙路時(shí)配置沖突導(dǎo)致徹底無(wú)輸出。




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