关于原子哥USMART最长计时时间问题求助

2019-07-21 08:29发布

今天正好看到了USMART调试组件,这里有点疑惑,原子手册:USMART 的函数执行时间统计功能,最多可以
统计定时器溢出 1 次的时间,对 STM32 来说,定时器是 16 位的,最大计数是 65535,而由于
我们定时器设置的是 0.1ms 一个计时周期(10Khz),所以最长计时时间是:65535*2*0.1ms=13.1
秒。

一个周期是0.1ms,最长计时不是65535*0.1ms吗,怎么还要乘以2呢?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
正点原子
1楼-- · 2019-07-21 10:00
第一次溢出,可以感知,第二次溢出,无法感知,所以可以溢出一次,到下第二次溢出之前,都可以正常统计。
chenyh85
2楼-- · 2019-07-21 14:26
 精彩回答 2  元偷偷看……
freddiemore
3楼-- · 2019-07-21 19:16
为啥只能感知第一次的溢出????
半梦扮醒
4楼-- · 2019-07-21 19:25
正点原子 发表于 2017-5-8 10:31
第一次溢出,可以感知,第二次溢出,无法感知,所以可以溢出一次,到下第二次溢出之前,都可以正常统计。

原子哥,关于这里我有问题,当第一次溢出后不是又进入中断服务程序了吗?
此时,将又执行一次usmart_dev.scan();
岂不是乱套了?
zc090115
5楼-- · 2019-07-22 00:17
第一次溢出,可以感知,第二次溢出,无法感知,所以可以溢出一次,到下第二次溢出之前,都可以正常统计。  请指导下在哪里感知和防止该函数的二次调用的?

一周热门 更多>