[方案相关] 【华大测评】官方延时函数Ddl_Delay1xx精度测量

[复制链接]
3118|10
 楼主| 纪国圣 发表于 2021-12-11 11:00 | 显示全部楼层 |阅读模式
今天看hc32f460_utility.c中官方给出的void Ddl_Delay1us(uint32_t u32Cnt)和void Ddl_Delay1ms(uint32_t u32Cnt)时,发现其函数注释说明其延时不是精确的:
  1. /**
  2. *******************************************************************************
  3. ** \brief Delay function, delay 1us approximately
  4. **
  5. ** \param [in]  u32Cnt                 us
  6. **
  7. ** \retval none
  8. **
  9. ******************************************************************************/
  1. /**
  2. *******************************************************************************
  3. ** \brief Delay function, delay 1ms approximately
  4. **
  5. ** \param [in]  u32Cnt                 ms
  6. **
  7. ** \retval none
  8. **
  9. ******************************************************************************/
好奇其误差到底有多大,因此用TIMER02测量其精度。TIMER02的最小测量分辨率为0.02us。测量结果如下:
1.PNG
误差挺大的,让人意外。
HC32F460_时间测量.zip (1001.3 KB, 下载次数: 11)
cyclefly 发表于 2021-12-11 16:51 | 显示全部楼层
这个不是串口打印的么?
下载看看怎么测试的,学习下
查询无结果 发表于 2021-12-12 13:11 来自手机 | 显示全部楼层
还是得自己用滴答定时器延时
martinhu 发表于 2021-12-12 21:07 | 显示全部楼层
官方库函数里面,有两个delay函数,一个是软件指令的delay,一个是systick定时器做的delay,
你测试的是软件指令的delay,肯定有误差!
如果想要准的,可以用systick或者其他定时器做delay!!!
tfqi 发表于 2022-1-10 13:24 | 显示全部楼层
大概能相差多少呢
wiba 发表于 2022-1-10 13:32 | 显示全部楼层
为什么有时候会卡在延时函数里边呢
qcliu 发表于 2022-1-10 13:52 | 显示全部楼层
用systick做延时
zljiu 发表于 2022-1-10 14:20 | 显示全部楼层
没有其他代码进行干扰吗
coshi 发表于 2022-1-10 14:36 | 显示全部楼层
还得刨除输出传输用的时间
mdc9 发表于 2022-5-18 15:50 | 显示全部楼层
martinhu 发表于 2021-12-12 21:07
官方库函数里面,有两个delay函数,一个是软件指令的delay,一个是systick定时器做的delay,
你测试的是软 ...

systick 最小可以设定1us延时么
mdc9 发表于 2022-5-18 17:52 | 显示全部楼层
mdc9 发表于 2022-5-18 15:50
systick 最小可以设定1us延时么

感谢【qjp1988113】的分享

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

delay_ms(100).jpg
delay_us(1000).jpg
华大延时函数评测.jpg
您需要登录后才可以回帖 登录 | 注册

本版积分规则

77

主题

407

帖子

5

粉丝
快速回复 在线客服 返回列表 返回顶部