打印
[MM32软件]

MM32L073微秒级别延时函数问题

[复制链接]
3784|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
呐咯密密|  楼主 | 2021-7-22 12:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在MM32L073的delay.c中有延时函数的定义,但是使用systick只有毫秒级别的延时,如果使用微秒延时必须用粗延时,这个十分不方便。

在延时函数初始化中对系统时钟除以1000,达到一毫秒进一次中断,

如果我把1000改为1000000理论上应该是一微妙进入一次中断,但是实际上会卡死在这里


能否请教一下各位,这是为啥

使用特权

评论回复
沙发
kiwis66| | 2021-7-23 08:47 | 只看该作者
感觉这几个厂商的时钟配置,格式都差不多~~

使用特权

评论回复
板凳
呐咯密密|  楼主 | 2021-7-23 10:15 | 只看该作者
kiwis66 发表于 2021-7-23 08:47
感觉这几个厂商的时钟配置,格式都差不多~~

但是这款延时函数不能用,不知道为啥

使用特权

评论回复
地板
zhu^zhu| | 2021-7-23 14:58 | 只看该作者
发一个我们关于键盘、显示的代码供参考。来自于MM32-FDS GPIO例程。
对于微秒级的精确延时,我觉得应该采用硬件的方式获得。
关于SysTick的问题,这个定时器主要作用是做任务调度的,比如1mS的任务调度间隔时间,想快可以设为500uS的间隔周期。如果再小的话,您必须考虑中断响应的开销(通常在1uS以上)与MCU提供给应用程序代码开销的比值。
作为偶发的非精确的小延时,采用诸如 for(int i = 0; i < 100; i++);是可以的。
如果是键盘等待,显示延时用上述方法是万万不能的。
不知道这样回答是否能够接受?
不好意思!没有及时给提问者回复!

key_led_sync.zip

1.34 KB

使用特权

评论回复
5
zhu^zhu| | 2021-7-23 15:06 | 只看该作者
在一个优秀的应用里,应该见不到用阻塞方式实现代码编程的。阻塞编程只适用于单任务的演示代码(Demonstration),不应出现在应用项目中。
也就是说:尽量使用非阻塞方式编程!

使用特权

评论回复
6
呐咯密密|  楼主 | 2021-7-23 16:50 | 只看该作者
zhu^zhu 发表于 2021-7-23 14:58
发一个我们关于键盘、显示的代码供参考。来自于MM32-FDS GPIO例程。
对于微秒级的精确延时,我觉得应该采用 ...

这个代码依旧只是微秒级别,我发现了,你们的这个芯片最小的延时只能达到3us,再小的就无能为力了。即使我使用了定时器,最小的溢出时间也只能达到3us,没办法了,换一个吧,我这需要1us的延时,粗延时也满足不了,太难受了。

使用特权

评论回复
7
luohao316| | 2021-7-23 17:25 | 只看该作者
1us的中断是不是太快了?
可以用TIMER来做us延迟,TIMER清零后启动,然后查询计数器的值,达到需要的延迟时间。就返回。
这样做个几十微秒的延迟还是挺准的。

使用特权

评论回复
8
zhu^zhu| | 2021-7-23 18:22 | 只看该作者
呐咯密密 发表于 2021-7-23 16:50
这个代码依旧只是微秒级别,我发现了,你们的这个芯片最小的延时只能达到3us,再小的就无能为力了。即使 ...

您是需要获取软件上微秒(uS)的延时,体现在外设上的输出或输入?
如果是的话,应该使用硬件的方法获得。

使用特权

评论回复
9
呐咯密密|  楼主 | 2021-7-24 14:41 | 只看该作者
zhu^zhu 发表于 2021-7-23 18:22
您是需要获取软件上微秒(uS)的延时,体现在外设上的输出或输入?
如果是的话,应该使用硬件的方法获得。 ...

我就是需要us的延时,最低1us,

使用特权

评论回复
10
zhu^zhu| | 2021-7-24 21:38 | 只看该作者
呐咯密密 发表于 2021-7-24 14:41
我就是需要us的延时,最低1us,

能透露一下什么应用或要求吗?不需要详细的细节。
对于uS的输出,在目前的MCU上,必须使用定时器硬件,并不得使用中断。
通常来说查询的速度要远快于中断方式。谢谢!

使用特权

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

本版积分规则

认证:苏州澜宭自动化科技嵌入式工程师
简介:本人从事磁编码器研发工作,负责开发2500线增量式磁编码器以及17位、23位绝对值式磁编码器,拥有多年嵌入式开发经验,精通STM32、GD32、N32等多种品牌单片机,熟练使用单片机各种外设。

351

主题

2775

帖子

40

粉丝