找回密码
 立即注册
查看: 434|回复: 0

请教前辈,STC单片机芯片PWM硬件设置

[复制链接]

该用户从未签到

1

主题

0

回帖

37

积分

新手上路

积分
37
发表于 2023-12-8 09:58:50 | 显示全部楼层 |阅读模式
本帖最后由 happy2058 于 2023-12-8 10:56 编辑

芯片8H3K32S2  系统24M 1T
//********************************************************PWMA 互补*****************************************
#define PWM_PSC                         (12-1)        //12分频,0.5us  
#define PWM_PERIOD                 2                        //周期1us
#define PWM_DUTY                         1                       //占空0.5us        
        
        
void PWMA_Config()                                //
{
        PWMA_PS =  0x40;                                   //P2.6P2.7 管脚
        
        PWMA_PSCRH = (u16)(PWM_PSC >> 8);
        PWMA_PSCRL = (u16)(PWM_PSC);                 
        
        PWMA_CCER2 = 0x00; // 写 CCMRx 前必须先清零 CCERx 关闭通道
        PWMA_CCMR4 = 0x60; // 设置 CC2 为 PWMA 输出模式,PWM模式1
        PWMA_CCER2 = 0x50; // 使能 CC4P4n


        
        PWMA_CCR4H = (u16)(PWM_DUTY >> 8);  //设置占空比
        PWMA_CCR4L = (u16)(PWM_DUTY);
        
        PWMA_ARRH = (u16)(PWM_PERIOD >> 8); // 设置PWM周期
        PWMA_ARRL = (u16)(PWM_PERIOD);
        
        //PWMA_IER
        //PWMA_DTR = 1;
        PWMA_ENO = 0xc0; // 使能 PWM4p4n 端口输出
        PWMA_BKR = 0x80; // 使能主输出
        PWMA_CR1 = 0x01; // 启动PWM定时器
}        

为什么周期变大了,不管我怎么设置,周期不等于PWMA_ARR
221321kggwz6cc8j68w96j.jpg

下图是12分频,PWMA_CCR 1us  PWMA_ARR 5us 占空比0.2

215327kqme0m009ye8qeu4.jpg

下图是6分频,PWMA_CCR 1us  PWMA_ARR 5us 占空比0.2

215328m86x66h8ki878s76.jpg


周期要比设置的ARR要大,大了接近一个正脉宽。是硬件清耗吗?产生事件消耗?我把其它功能已经全部关闭。只留了一下PWMA。

回复 送花

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2024-5-10 23:53 , Processed in 0.052594 second(s), 31 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表