打印
[技术问答]

华大hc32l136的官方延时函数delay10us不准确

[复制链接]
2587|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
chuuya|  楼主 | 2024-10-26 10:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
目前需要一个us级延时,来控制pwm波的间歇性输出,结果官方的delay10us函数实测一点也不准,是设置值的5倍之多;换了个方法用tim2中断来延时,结果开了tim2中断会影响tim0的pwm输出?

使用特权

评论回复
沙发
b5z1giu| | 2024-11-11 23:31 | 只看该作者
在使用微控制器进行精确的微秒级延时时,可能会遇到一些挑战,尤其是在使用中断和定时器时。


使用特权

评论回复
板凳
cen9ce| | 2024-11-12 07:11 | 只看该作者
使用硬件定时器进行延时,硬件定时器通常比软件延时更精确。你可以使用一个独立的定时器来实现微秒级延时,而不影响其他定时器的功能。

使用特权

评论回复
地板
d1ng2x| | 2024-11-12 08:47 | 只看该作者
避免定时器之间的干扰,如果你发现开启 TIM2 中断会影响 TIM0 的 PWM 输出,可能是因为中断优先级设置不当或中断处理时间过长。

使用特权

评论回复
5
g0d5xs| | 2024-11-12 09:23 | 只看该作者
调整中断优先级:确保 TIM2 的中断优先级低于 TIM0 的中断优先级。

使用特权

评论回复
6
kaif2n9j| | 2024-11-12 10:44 | 只看该作者
优化中断处理函数:尽量减少 TIM2 中断处理函数中的代码量,避免在中断处理函数中执行耗时操作。

使用特权

评论回复
7
l1uyn9b| | 2024-11-12 12:22 | 只看该作者
使用软件延时进行粗略延时,如果硬件定时器无法满足需求,你可以使用软件延时进行粗略的微秒级延时。虽然软件延时不如硬件定时器精确,但在某些情况下可以作为替代方案。

使用特权

评论回复
8
lamanius| | 2024-11-12 13:55 | 只看该作者
为了实现精确的微秒级延时并避免定时器之间的干扰,建议使用独立的硬件定时器(如 TIM3)进行延时,并调整中断优先级以避免干扰。如果硬件定时器无法满足需求,可以考虑使用软件延时作为替代方案。

使用特权

评论回复
9
liu96jp| | 2024-11-12 14:36 | 只看该作者
一般要是延时要求很准确,可以考虑芯片的滴答定时器吧

使用特权

评论回复
10
lix1yr| | 2024-11-12 14:45 | 只看该作者
其实就是定时器的优先级冲突了,我觉得你优化一下就好了

使用特权

评论回复
11
p0gon9y| | 2024-11-12 15:23 | 只看该作者
一般定时器做计时器的话,应该误差不会很大才对啊,在中断里做什么业务时间长了?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

1

帖子

0

粉丝