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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 637|回復: 0
打印 上一主題 下一主題
收起左側

關于STC15W4K32S4的10位PWM問題

[復制鏈接]
跳轉到指定樓層
樓主
ID:289218 發表于 2025-2-12 12:14 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

根據芯片手冊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;
}
}
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表