打印
[方案相关]

【华大测评】官方延时函数Ddl_Delay1xx精度测量

[复制链接]
2619|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
纪国圣|  楼主 | 2021-12-11 11:00 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
今天看hc32f460_utility.c中官方给出的void Ddl_Delay1us(uint32_t u32Cnt)和void Ddl_Delay1ms(uint32_t u32Cnt)时,发现其函数注释说明其延时不是精确的:
/**
*******************************************************************************
** \brief Delay function, delay 1us approximately
**
** \param [in]  u32Cnt                 us
**
** \retval none
**
******************************************************************************/
/**
*******************************************************************************
** \brief Delay function, delay 1ms approximately
**
** \param [in]  u32Cnt                 ms
**
** \retval none
**
******************************************************************************/
好奇其误差到底有多大,因此用TIMER02测量其精度。TIMER02的最小测量分辨率为0.02us。测量结果如下:

误差挺大的,让人意外。
HC32F460_时间测量.zip (1001.3 KB)

使用特权

评论回复
沙发
cyclefly| | 2021-12-11 16:51 | 只看该作者
这个不是串口打印的么?
下载看看怎么测试的,学习下

使用特权

评论回复
板凳
查询无结果| | 2021-12-12 13:11 | 只看该作者
还是得自己用滴答定时器延时

使用特权

评论回复
地板
martinhu| | 2021-12-12 21:07 | 只看该作者
官方库函数里面,有两个delay函数,一个是软件指令的delay,一个是systick定时器做的delay,
你测试的是软件指令的delay,肯定有误差!
如果想要准的,可以用systick或者其他定时器做delay!!!

使用特权

评论回复
5
tfqi| | 2022-1-10 13:24 | 只看该作者
大概能相差多少呢

使用特权

评论回复
6
wiba| | 2022-1-10 13:32 | 只看该作者
为什么有时候会卡在延时函数里边呢

使用特权

评论回复
7
qcliu| | 2022-1-10 13:52 | 只看该作者
用systick做延时

使用特权

评论回复
8
zljiu| | 2022-1-10 14:20 | 只看该作者
没有其他代码进行干扰吗

使用特权

评论回复
9
coshi| | 2022-1-10 14:36 | 只看该作者
还得刨除输出传输用的时间

使用特权

评论回复
10
mdc9| | 2022-5-18 15:50 | 只看该作者
martinhu 发表于 2021-12-12 21:07
官方库函数里面,有两个delay函数,一个是软件指令的delay,一个是systick定时器做的delay,
你测试的是软 ...

systick 最小可以设定1us延时么

使用特权

评论回复
11
mdc9| | 2022-5-18 17:52 | 只看该作者
mdc9 发表于 2022-5-18 15:50
systick 最小可以设定1us延时么

感谢【qjp1988113】的分享

下面是我用他代码 测试的结果

华大延时函数评测.jpg (205.33 KB )

华大延时函数评测.jpg

delay_us(1000).jpg (213.08 KB )

delay_us(1000).jpg

delay_ms(100).jpg (327.38 KB )

delay_ms(100).jpg

使用特权

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

本版积分规则

77

主题

406

帖子

5

粉丝