找回密码
 立即注册
查看: 957|回复: 1

求助, 快速变换多个PWM频率,管脚为什么会有2ms左右的低电平

[复制链接]

1

主题

0

回帖

9

积分

新手上路

积分
9
发表于 2023-2-6 15:09:21 | 显示全部楼层 |阅读模式
需要在ms级别的持续时间内,输出从设定好的初始频率到终止频率的多个PWM频率点,就是相当于扫频。

比如从3khz到30khz,一共输出均分的100个频率点的PWM波,每个频点的持续时间在2ms到30ms。
但是我发现当我使用stc-isp-v6.9中的STC8G-STC8H-LIB-DEMO-CODE中的关于PWM相关的程序的时候,
不论我反复调用PWM_config()也就是整体全部重新设置PWM寄存器还是UpdatePwm()也就是只是更新PWM的period和occupy rate都会有2ms的低电平输出,无法实现频率点无差别的平滑渐进更新。
请问这个是不是我的程序问题,还是8H芯片本身自带的问题?万分感谢。

klq
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:415
  • 最近打卡:2025-04-30 09:58:34
已绑定手机

39

主题

2006

回帖

6843

积分

论坛元老

积分
6843
发表于 2023-2-6 18:31:36 | 显示全部楼层
开启输出比较的预装载使能与自动重装预装载使能试试。
如果使用PWMA的话可在PWM初始化函数里添加:
PWMA_CR1 |= 0x80;
PWMA_OC1_ReloadEnable(ENABLE);

如果使用PWMB的话可在PWM初始化函数里添加:
PWMB_CR1 |= 0x80;
PWMB_OC5_ReloadEnable(ENABLE);
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-5-3 14:52 , Processed in 0.102425 second(s), 54 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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