程序运行时间问题

[复制链接]
3064|8
 楼主| megaf 发表于 2011-6-16 11:00 | 显示全部楼层 |阅读模式
if(StationSec >(30))
  {  
       oldtime=OSTimeGet();
    Shell_OutTXT1("\r\n 距离上次运行到此时间差是 %d",(oldtime-appletime));
    appletime=oldtime;
   }
   StationSec = 0;
   }
  }
//StationSec在中断中1s自加一次
我在一个项目中发现,在此输出的时间差值不是很准确,用的是ucos和stm32f105,任务中还别的中断和互斥量。想问问大家是什么原因导致的这个问题,怎么解决
 楼主| megaf 发表于 2011-6-16 11:01 | 显示全部楼层
有时候差个7s,有时候差值又能是几个毫秒,不理解
 楼主| megaf 发表于 2011-6-16 11:02 | 显示全部楼层
[ 距离上次运行到此时间差是 24224
[ 距离上次运行到此时间差是 19953
[ 距离上次运行到此时间差是 28028
[ 距离上次运行到此时间差是 19926
[ 距离上次运行到此时间差是 29243
[ 距离上次运行到此时间差是 29689
[ 距离上次运行到此时间差是 38936
 楼主| megaf 发表于 2011-6-16 11:02 | 显示全部楼层
这是实验数据
香水城 发表于 2011-6-16 12:15 | 显示全部楼层
你最好先搞清楚UCOS的调度规则,以及中断和互斥量的使用对任务调度的影响,搞清楚后你自己就可以回答这个问题。
txcy 发表于 2011-6-16 13:08 | 显示全部楼层
楼主可能是一些基本概念没弄清楚
 楼主| megaf 发表于 2011-6-16 13:08 | 显示全部楼层
5# 香水城
调度,中断,互斥量,这几点都注意看了,只是没法估量其对我上面程序的影响。或者说上面的问题是由这几点导致的吗
香水城 发表于 2011-6-16 13:20 | 显示全部楼层
5# 香水城
调度,中断,互斥量,这几点都注意看了,只是没法估量其对我上面程序的影响。或者说上面的问题是由这几点导致的吗
megaf 发表于 2011-6-16 13:08


肯定会影响。
airwill 发表于 2011-6-16 16:03 | 显示全部楼层
ucos 的调度机制不会导致这么大的时间差的. 否则就面对"RTOS" 的称号,它会自惭形秽咯
估计是高优先级的任务占用了太多时间.
不妨提高这段程序的优先级, 先设置到最高, 然后再依次降低. 看看哪个任务占用太多的资源不及时释放导致的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:呵呵,赶上中国机器人发展的时代,中国机器人就靠我们这代人了,任重道远。

24

主题

81

帖子

1

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