OpenEdv-开源电子网

 找回密码
 立即注册

扫一扫,访问微社区

正点原子新作:阿波罗STM32F767&F429&探索者STM32F4开发板&赶快来下载资料哦。

查看: 816|回复: 11

请问如何在互补PWM的死区中产生一个中断?

[复制链接]

  离线 

1

主题

7

帖子

0

精华

新手上路

积分
21
金钱
21
注册时间
2018-6-8
在线时间
3 小时
发表于 2018-6-11 21:07:35 | 显示全部楼层 |阅读模式
1金钱
请问如何在互补PWM的死区中产生一个中断?

回复

使用道具 举报

  离线 

497

主题

9万

帖子

31

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
128230
金钱
128230
注册时间
2010-12-1
在线时间
1133 小时
发表于 2018-6-12 00:58:01 | 显示全部楼层
看硬件有没有这个功能,没有的话,就没办法。
回复

使用道具 举报

  离线 

18

主题

176

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
321
金钱
321
注册时间
2017-7-26
在线时间
84 小时
发表于 2018-6-12 09:22:34 | 显示全部楼层
单脉冲触发中断,中断中再开启单脉冲。这样?
回复

使用道具 举报

  离线 

1

主题

7

帖子

0

精华

新手上路

积分
21
金钱
21
注册时间
2018-6-8
在线时间
3 小时
 楼主| 发表于 2018-6-12 09:34:53 来自手机 | 显示全部楼层
正点原子 发表于 2018-6-12 00:58
看硬件有没有这个功能,没有的话,就没办法。

官方f3的应用用的就是这种方法。不过没有找到具体函数
回复

使用道具 举报

  离线 

1

主题

7

帖子

0

精华

新手上路

积分
21
金钱
21
注册时间
2018-6-8
在线时间
3 小时
 楼主| 发表于 2018-6-12 09:35:39 来自手机 | 显示全部楼层
正点原子公众号
a3748622 发表于 2018-6-12 09:22
单脉冲触发中断,中断中再开启单脉冲。这样?

互补的pwm。不是单脉冲触发
回复

使用道具 举报

  离线 

27

主题

205

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
320
金钱
320
注册时间
2018-1-9
在线时间
52 小时
发表于 2018-6-12 10:23:10 | 显示全部楼层
死区位置,不就是PWM的翻转位置吗?直接在哪里中断不就好了,一个周期有两个死区一个上升沿,一个下降沿。你什么用途,居然有这种需求??
回复

使用道具 举报

  离线 

18

主题

176

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
321
金钱
321
注册时间
2017-7-26
在线时间
84 小时
发表于 2018-6-12 10:47:29 | 显示全部楼层
Gscsd 发表于 2018-6-12 09:35
互补的pwm。不是单脉冲触发

你不是用高级定时器输出吗?

高级定时器输出互补PWM设置完两通道就可以自动互补输出啊。

跟你触发方式没关系吧。你可PWM输出方式,也可以toggle输出。

脉冲计数模式我没试过,你要是没别的办法,可以尝试下
回复

使用道具 举报

  离线 

1

主题

7

帖子

0

精华

新手上路

积分
21
金钱
21
注册时间
2018-6-8
在线时间
3 小时
 楼主| 发表于 2018-6-12 11:22:31 | 显示全部楼层
jinfeihan57 发表于 2018-6-12 10:23
死区位置,不就是PWM的翻转位置吗?直接在哪里中断不就好了,一个周期有两个死区一个上升沿,一个下降沿。 ...

做电源,为了获取没有受到纹波影响的ADC值,在死区中产生一个中断获取adc值,使用的ADC芯片,不是32的ADC。问题是怎么直接在死区里中断呢?
回复

使用道具 举报

  离线 

27

主题

205

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
320
金钱
320
注册时间
2018-1-9
在线时间
52 小时
发表于 2018-6-13 10:42:24 | 显示全部楼层
Gscsd 发表于 2018-6-12 11:22
做电源,为了获取没有受到纹波影响的ADC值,在死区中产生一个中断获取adc值,使用的ADC芯片,不是32的ADC ...

你看一下,PWM在边沿翻转的时候可不可以触发中断,可以的话。你就用这个中断就可以。死区时间很窄的,你的是多少?所以你可以认为边沿就是死去时间的位置。
回复

使用道具 举报

  离线 

1

主题

7

帖子

0

精华

新手上路

积分
21
金钱
21
注册时间
2018-6-8
在线时间
3 小时
 楼主| 发表于 2018-6-14 10:17:29 | 显示全部楼层
jinfeihan57 发表于 2018-6-13 10:42
你看一下,PWM在边沿翻转的时候可不可以触发中断,可以的话。你就用这个中断就可以。死区时间很窄的,你 ...

没有找到这个中断,换了另一种方法,打开另外一个定时器,同时使能,用计数器的值对应pwm波的时刻。PWM应该也是采用的计数值,不过没有找到pwm的计数值是存在那个寄存器里的
回复

使用道具 举报

  离线 

27

主题

205

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
320
金钱
320
注册时间
2018-1-9
在线时间
52 小时
发表于 2018-6-14 14:39:51 | 显示全部楼层
Gscsd 发表于 2018-6-14 10:17
没有找到这个中断,换了另一种方法,打开另外一个定时器,同时使能,用计数器的值对应pwm波的时刻。PWM应 ...

如果没有我说的中断触发模式的话,你的这个做法也不保险啊!
可以使用捕捉功能,就是飞一条线从PWM的输出脚到有捕捉功能的gpio上,用这个捕捉管脚捕捉上升下降沿。每一次边沿跳变就是你死区的时间。触发中断。就可以啦!!
回复

使用道具 举报

  离线 

0

主题

303

帖子

0

精华

高级会员

Rank: 4

积分
708
金钱
708
注册时间
2018-2-7
在线时间
75 小时
发表于 2018-6-14 17:23:26 | 显示全部楼层
你的PWM频率是多少?你确定死区时间进中断然后再去AD采集数据来的急?另外你是要采集死区的那一瞬间AD值,还是死区时间到了再去采AD值,如果要采死区那一瞬间的AD值,那你就要看开你程序执行的速度够不够,能不能达到同步的效果。
回复

使用道具 举报

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

本版积分规则




QQ|联系我们|手机版|官方淘宝店|新浪微博|微信公众平台|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2018-6-22 21:02

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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