硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2149|回复: 6
收起左侧

[ThreadX全家桶] 使用tx_thread_sleep()延迟的时间略短于理论值?

[复制链接]

17

主题

84

回帖

135

积分

初级会员

积分
135
QQ
发表于 2022-3-28 13:28:00 | 显示全部楼层 |阅读模式
设置SYSTEM_CLOCK      EQU   216000000SYSTICK_CYCLES    EQU   ((SYSTEM_CLOCK / 1000) -1)
按理来说,tx_thread_sleep(1)的延迟时间应该是1ms,实际测得的时间约为140us;
tx_thread_sleep(2)测得的时间约为1045us;
tx_thread_sleep(3)测得的时间约为2046us;
请问这是什么问题?


回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
116230
QQ
发表于 2022-3-28 16:33:36 | 显示全部楼层
这个是正常的,比如你设置1ms延迟的时候,此时系统时间是11.90ms,系统还差0.1ms就到了。
回复

使用道具 举报

17

主题

84

回帖

135

积分

初级会员

积分
135
QQ
 楼主| 发表于 2022-3-28 16:48:40 | 显示全部楼层
eric2013 发表于 2022-3-28 16:33
这个是正常的,比如你设置1ms延迟的时候,此时系统时间是11.90ms,系统还差0.1ms就到了。

但是每次测量出来的时间都是这样的,按理来说应该会变化的
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
116230
QQ
发表于 2022-3-29 00:41:56 | 显示全部楼层
linminghui 发表于 2022-3-28 16:48
但是每次测量出来的时间都是这样的,按理来说应该会变化的

换几个复杂点的工程都测测,会有不同的效果展示。
回复

使用道具 举报

14

主题

37

回帖

79

积分

初级会员

积分
79
发表于 2025-1-6 19:54:12 | 显示全部楼层
我遇到个更奇葩的,按理来说tx_thread_sleep(1000);是一秒,但是实际上远远大于1秒
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
116230
QQ
发表于 2025-1-7 07:41:12 | 显示全部楼层
2668350209 发表于 2025-1-6 19:54
我遇到个更奇葩的,按理来说tx_thread_sleep(1000);是一秒,但是实际上远远大于1秒

仅开一个任务试试,且不开系统以外的任何其它中断

看看正常不,远大于1s是不正常的。
回复

使用道具 举报

14

主题

37

回帖

79

积分

初级会员

积分
79
发表于 2025-1-7 18:00:42 | 显示全部楼层
我找到问题了,硬汉哥,原来是我时钟配错了,没看
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-6-10 22:03 , Processed in 0.438688 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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