野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 26196|回复: 2

通过按键控制PWM波的频率和占空比

[复制链接]
发表于 2021-9-4 09:51:13 | 显示全部楼层 |阅读模式
10火花
本帖最后由 小萌新1 于 2021-9-4 14:28 编辑

我想通过按键调节PWM波的频率和占空比,我有三个按键,KEY1增大频率,以100Hz为步进,就是按一下频率增加100Hz,KEY0减小频率,按一下减小100Hz。KEY_UP调节占空比,按一下增加10%。我是参考野火33-TIM-通用定时器-4路PWM输出的代码,我用了两路的输出,通道1是占空比可调(KEY_UP调节占空比),通道2占空比不可调(50%),预分频系数是71(pre),自动重装载值ARR=9999(即period)。 占空比配置   CCR1_Val=(period+1)*0.5;   CCR2_Val = 5000;   

/* ----------------   PWM信号 周期和占空比的计算--------------- */
// ARR :自动重装载寄存器的值
// CLK_cnt:计数器的时钟,等于 Fck_int / (psc+1) = 72M/(psc+1)

// PWM 信号的周期 T = ARR * (1/CLK_cnt) = ARR*(PSC+1) / 72M

// 占空比P=CCR/(ARR+1)           PA6是通道1,PA7是通道2


这是本节野火例程里的公式,但是我感觉    【PWM 信号的周期 T = ARR * (1/CLK_cnt) = ARR*(PSC+1) / 72M】  这个公式有误,应该是 {  PWM 信号的周期 T = (ARR+1) * (1/CLK_cnt) = (ARR+1)*(PSC+1) / 72M }          频率是周期的倒数

设计的要求

设计的要求

我把我的代码发上来了,大佬们看看吧。在附件里面

我把我的代码发上来了,大佬们看看吧。在附件里面

示波器显示的结果不对

PA6频率

PA6频率


PA6周期

PA6周期


PA6占空比

PA6占空比

PA7占空比

PA7占空比


大佬们帮我看看吧,我卡在这儿好久了。

PA6是通道1,PA7是通道2
我把我的代码发上来了,大佬们看看吧。在附件里面


主函数

主函数

TIM—通用定时器-2路PWM输出(改).zip

5.9 MB, 下载次数: 66

我的代码

回复

使用道具 举报

发表于 2021-9-4 10:30:37 | 显示全部楼层
PWM 信号的周期 T = (ARR+1) * (1/CLK_cnt) = (ARR+1)*(PSC+1) / 72M  这个是对的
回复

使用道具 举报

 楼主| 发表于 2021-9-11 13:59:25 | 显示全部楼层
我已经解决了
回复

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-24 13:25 , Processed in 0.044725 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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