MDK显示运行时间不对

2019-07-21 04:13发布

如题,我定时器定时500ms,在线仿真,运行后第一次时间是对的,然后再运行一次,时间就不对了,但是实际运行LED间隔确实是500ms,请问为什么呢?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
peng1554
1楼-- · 2019-07-21 04:39
你MDK是怎样设置的?(debug->settings->Trace)
wangmingwei093
2楼-- · 2019-07-21 06:14
peng1554 发表于 2019-3-18 21:46
你MDK是怎样设置的?(debug->settings->Trace)

我设置的是71MHZ,也是这个结果
hujj
3楼-- · 2019-07-21 11:54
也许是定时器时间再加上相关代码执行的时间造成的误差吧,您的时间要求确实需要那么精确吗?
wangmingwei093
4楼-- · 2019-07-21 16:00
hujj 发表于 2019-3-19 10:47
也许是定时器时间再加上相关代码执行的时间造成的误差吧,您的时间要求确实需要那么精确吗?

这是我同事问我的一个问题,我也不知道什么原因造成的,所以我也来求助了,至于误差,肯定不会这么大吧,并且这个sec不应该是程序运行时间的叠加吗,比如我定时器设置500ms,我断点就打在中断中,第一次500ms进入中断,第二次这个sec就不对了,正常的不应该是第二次1s吗?
peng1554
5楼-- · 2019-07-21 18:43
 精彩回答 2  元偷偷看……
hujj
6楼-- · 2019-07-21 23:24
wangmingwei093 发表于 2019-3-19 11:33
这是我同事问我的一个问题,我也不知道什么原因造成的,所以我也来求助了,至于误差,肯定不会这么大吧, ...

我理解定时器中断是定时发生的,两次中断之间的时间应该是一致的。至于您的Sec变量没有累加那是另外一回事。
您的两次运行时间差为0.50009054-0.50008887=0.00000167(秒),也就是说相差1.67微秒,这个原因我也说不清楚,猜想可能是的执行指令数不一样吧。

一周热门 更多>