OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 33362|回复: 19

在PWM输出比较模式下。如何改变占空比?

[复制链接]

33

主题

150

帖子

0

精华

高级会员

Rank: 4

积分
506
金钱
506
注册时间
2014-1-24
在线时间
102 小时
发表于 2014-6-19 21:37:53 | 显示全部楼层 |阅读模式
5金钱
把原子哥四路输出那个实验修改了很多次,发现ARR,PSC只改变周期,CCMR只改变相位,一直是50%占空比不变。请问哈怎么修改修改和计算占空比?

最佳答案

查看完整内容[请看2#楼]

不是有一个库函数改变占空比吗?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

56

主题

1237

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2643
金钱
2643
注册时间
2014-2-13
在线时间
518 小时
发表于 2014-6-19 21:37:54 | 显示全部楼层
不是有一个库函数改变占空比吗?

技术交流,Sell 中颖单片机,欢迎私信骚扰
回复

使用道具 举报

33

主题

150

帖子

0

精华

高级会员

Rank: 4

积分
506
金钱
506
注册时间
2014-1-24
在线时间
102 小时
 楼主| 发表于 2014-6-20 10:03:25 | 显示全部楼层
回复【2楼】黑夜之狼:
---------------------------------
谢谢,不过我不是说这个,这个例程只是普通的PWM模式,我想问的是在输出比较触发模式下,怎么改变占空比,论坛里的例程占空比都是50%,难道就不能改变吗?
回复

使用道具 举报

42

主题

208

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
383
金钱
383
注册时间
2014-6-12
在线时间
35 小时
发表于 2014-7-8 20:56:33 | 显示全部楼层
回复【3楼】北方的马克思:
---------------------------------
那个能改变占空比的
回复

使用道具 举报

3

主题

11

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2014-7-4
在线时间
0 小时
发表于 2014-7-9 09:33:58 | 显示全部楼层
回复【4楼】郭刘阳:
---------------------------------
请问下,怎么改变了?
回复

使用道具 举报

42

主题

208

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
383
金钱
383
注册时间
2014-6-12
在线时间
35 小时
发表于 2014-7-9 18:58:04 | 显示全部楼层
你写的那个函数最后Tout=(arr+1)*(psc+1)/tclk;只要arr和psc确定了,你的产生的pwm的周期就确定了,然后在主程序里面你可以调用一下TIM_SetComparex(TIM_TypeDef*TIMX,uint16_t Compare1);对应好通道和定时器,你可以改一下Compare1的值,软件调试时用逻辑分析仪看一下那个高电平持续的时间
回复

使用道具 举报

74

主题

209

帖子

0

精华

高级会员

Rank: 4

积分
919
金钱
919
注册时间
2012-1-14
在线时间
5 小时
发表于 2014-9-1 15:53:53 | 显示全部楼层
楼主的问题解决了吗??我也遇到了同样的问题!
回复

使用道具 举报

19

主题

118

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
214
金钱
214
注册时间
2013-12-2
在线时间
0 小时
发表于 2014-9-17 08:11:10 | 显示全部楼层


占空比不就是高电平比上周期那,我在这个函数里按你说的,可是我无论怎么修改软件仿真都是这个
回复

使用道具 举报

19

主题

118

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
214
金钱
214
注册时间
2013-12-2
在线时间
0 小时
发表于 2014-9-17 08:11:58 | 显示全部楼层
回复【6楼】郭刘阳:
---------------------------------
亲 麻烦你看楼上
LED_Init();      //LED端口初始化
  TIM3_PWM_Init(100,7200);  //不分频。PWM频率=72000/900=8Khz
    while(1)
{

TIM_SetCompare2(TIM3,90);
 
我就是修改原子哥例程里面的
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
22
金钱
22
注册时间
2015-3-26
在线时间
0 小时
发表于 2015-3-26 20:48:18 | 显示全部楼层
楼主,请问你的问题解决得了,我也正在研究这个问题,能指点一下吗
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
21
金钱
21
注册时间
2015-6-7
在线时间
0 小时
发表于 2015-6-7 18:50:53 | 显示全部楼层
回复【10楼】yejunjie176:
---------------------------------在中断里面解决,今天才试了,是可以的,解决思路有两条;1·关闭CCRx与CNT相匹配时的中断和CCRx的预装载;打开计数器溢出中断,在中断中更新CCRx的值;然后就会在不同CNT达到时,翻转电频
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
21
金钱
21
注册时间
2015-7-26
在线时间
0 小时
发表于 2015-8-12 19:35:58 | 显示全部楼层
回复【11楼】ALLen_Maker_:
---------------------------------
能不能看下程序
回复

使用道具 举报

26

主题

96

帖子

0

精华

高级会员

Rank: 4

积分
669
金钱
669
注册时间
2015-9-15
在线时间
143 小时
发表于 2015-10-25 09:21:29 | 显示全部楼层
多谢,有点懂了
回复

使用道具 举报

0

主题

56

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
254
金钱
254
注册时间
2015-10-15
在线时间
39 小时
发表于 2016-11-4 14:42:39 | 显示全部楼层
ALLen_Maker_ 发表于 2015-6-7 18:50
回复【10楼】yejunjie176:
---------------------------------在中断里面解决,今天才试了,是可以的,解决 ...

多谢,感觉你的思路可以在输出比较模式下改变占空比。请问你的另外一个思路是什么能说一下吗?
回复

使用道具 举报

5

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2012-4-12
在线时间
4 小时
发表于 2017-5-2 17:05:02 | 显示全部楼层
中断中修改CCRx值,调整占空比,但是PWM频率不可以太高
回复

使用道具 举报

3

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
142
金钱
142
注册时间
2018-1-13
在线时间
45 小时
发表于 2018-1-16 18:10:17 | 显示全部楼层
红尘灬醉逍遥 发表于 2014-9-17 08:11
回复【6楼】郭刘阳:
---------------------------------
亲 麻烦你看楼上
        LED_Init();                         &nbsp ...

这不是寄存器版本的吗
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
2
金钱
2
注册时间
2018-12-9
在线时间
0 小时
发表于 2018-12-9 18:48:36 | 显示全部楼层
本帖最后由 a1372866566 于 2018-12-9 18:53 编辑
ALLen_Maker_ 发表于 2015-6-7 18:50
**** 作者被禁止或删除 内容自动屏蔽 ****

period值为7199,使用中断调寄存器CCR1的值,不但没有调成占空比反而频率减小了一倍,请问这是怎么回事
TIM图片20181209184751.png
回复

使用道具 举报

0

主题

7

帖子

0

精华

新手上路

积分
30
金钱
30
注册时间
2019-7-22
在线时间
14 小时
发表于 2019-7-30 15:20:58 | 显示全部楼层
楼主问题解决了吗?可以分享一下经验吗?
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
6
金钱
6
注册时间
2021-12-21
在线时间
4 小时
发表于 2021-12-21 19:30:46 | 显示全部楼层
a1372866566 发表于 2018-12-9 18:48
period值为7199,使用中断调寄存器CCR1的值,不但没有调成占空比反而频率减小了一倍,请问这是怎么回事

请问解决问题了吗?可以交流一下吗
回复

使用道具 举报

7

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
106
金钱
106
注册时间
2021-3-14
在线时间
20 小时
发表于 2022-1-2 22:01:36 | 显示全部楼层
zilong1013 发表于 2017-5-2 17:05
中断中修改CCRx值,调整占空比,但是PWM频率不可以太高

中断中修改CCRx值的意义在哪?如何改变占空比的? 能说清楚点吗?
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-18 05:58

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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