久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 416|回復: 2
收起左側

關于STC15W4K32S4單片機的10位PWM問題

[復制鏈接]
ID:289218 發表于 2025-2-13 13:16 | 顯示全部樓層 |閱讀模式
根據芯片手冊854頁中的描述,在不使用中斷的情況下,PWMx-B9H/PWMx-B9L/PWMx-B8H/PWMx-B8L與CCAPxH/CCAPxL可以組合為10位的PWM輸出,我在網上找了一個例程,但實際操作中無法實現,不知道有沒有哪位大俠有做過這樣的組合實現10位的PWM輸出,請不吝賜教,謝謝!
例程如下:

#define        PCA_PWM_10bit        (3<<6)
void        PCA_config(void);
void        UpdatePwm(u8 PCA_id, u16 pwm_value);


void main(void)
{
  PCA_config();
  UpdatePwm(PCA0,800);
  while (1)
{
      
}
}
void        PCA_config(void)
{
CR = 0;
CH = 0;
CL = 0;
AUXR1 = (AUXR1 & ~(3<<4)) | PCA_P12_P11_P10;        P1n_standard(0x07);
CMOD  = (CMOD  & ~(7<<1)) | PCA_Clock_12T;
CMOD  &= ~1;
CCAPM0 = PCA_Mode_PWM;
PCA_PWM0  = (PCA_PWM0 & ~(3<<6)) | PCA_PWM_10bit;
CCAP0L = 0xff;
CCAP0H = 0xff;
CCAPM1 = PCA_Mode_PWM;
PCA_PWM1  = (PCA_PWM1 & ~(3<<6)) | PCA_PWM_10bit;
CCAP1L = 0xff;
CCAP1H = 0xff;
CR = 1;
}
void        UpdatePwm(u8 PCA_id, u16 pwm_value)
{
if(pwm_value > 1024) return;
      
if(PCA_id == PCA0)
{
if(pwm_value == 0)
{
PCA_PWM0 |= 0x32;
CCAP0H = 0xff;
}
else
{
pwm_value = ~(pwm_value-1) & 0x3ff;
PCA_PWM0 = (PCA_PWM0 & ~0x32) | ((u8)(pwm_value >> 4) & 0x30);
CCAP0H = (u8)pwm_value;
CCAP0L = CCAP0H;
}
}
}
回復

使用道具 舉報

ID:1034262 發表于 2025-2-14 10:50 | 顯示全部樓層
改變占空比本身是不需要用到中斷的,任何地方都可以改變(包括在中斷中改變)。在中斷中改變占空比是為了處理數據,比如SPWM。

//========================================================================
// 函數: void UpdatePwm(u8 id, u16 pwm_value)
// 描述: 更新PWM值.
// 參數:        id: PCA序號, 0~1對應 PCA0 ~ PCA1
//                 pwm_value: pwm值, 這個值是輸出低電平的時間.
// 返回: none.
// 版本: V1.0, 2014-5-10
//========================================================================
void        UpdatePwm(u8 id, u16 pwm_value)
{
        if(id == 0)
        {
                PCA_PWM0 = (PCA_PWM0 & ~0x32) | (u8)((pwm_value >> 4) & 0x30);
                CCAP0H = (u8)pwm_value;
        }

        else if(id == 1)
        {
                PCA_PWM1 = (PCA_PWM1 & ~0x32) | (u8)((pwm_value >> 4) & 0x30);
                CCAP1H = (u8)pwm_value;
        }

}
回復

使用道具 舉報

ID:289218 發表于 2025-2-14 22:40 | 顯示全部樓層
coody_sz 發表于 2025-2-14 10:50
改變占空比本身是不需要用到中斷的,任何地方都可以改變(包括在中斷中改變)。在中斷中改變占空比是為了處 ...

感謝您的回復!
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 天天干狠狠操 | 久久婷婷国产 | 久久精品久久久 | 日韩精品一区在线 | 国产一区二区三区日韩 | 在线成人精品视频 | 国产91av视频 | 久久性色| 亚洲精品一 | 伊人国产精品 | 成年人在线视频 | 欧美日韩在线观看视频 | 亚洲精品国产a久久久久久 中文字幕一区二区三区四区五区 | 九九热在线视频 | 国产精品久久 | 国产高清精品一区 | 中文字幕二区三区 | 欧美一级久久 | 亚洲成人一区二区三区 | 国产乱码精品一区二区三区五月婷 | 亚洲国产网址 | 成人午夜视频在线观看 | 亚洲免费影院 | 亚洲日韩中文字幕一区 | 在线观看视频中文字幕 | 亚洲欧洲激情 | 999热精品视频 | 久久久做| 999久久久久久久久6666 | 黄色毛片视频 | 久久一二| 国产精品久久久久久吹潮 | 精品国产鲁一鲁一区二区张丽 | 精品日韩一区 | 久久久福利 | 精品一区二区电影 | 玩丰满女领导对白露脸hd | 亚洲激情一区二区三区 | 成人激情视频在线 | 涩涩视频在线观看 | 嫩草视频在线免费观看 |