static_li
驱动牛犊
驱动牛犊
  • 注册日期2002-11-17
  • 最后登录2004-10-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2822回复:7

关于tick的问题

楼主#
更多 发布于:2004-10-12 16:22
850的板子,设为每秒100tick,结果发现运行时间很慢,每秒只有20~30个Tick,怎么回事?tick与850内部的哪个时钟有关?
fwzfwz1
驱动中牛
驱动中牛
  • 注册日期2002-11-01
  • 最后登录2007-06-01
  • 粉丝0
  • 关注0
  • 积分80分
  • 威望8点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-10-13 20:11
tick值不是你可以随便设置的,tick值太大的话,系统的负荷将太大。任务调动花费了很多的时间,系统当然就慢了。
不过100不算大。
有了驱动,人才有了力量。
static_li
驱动牛犊
驱动牛犊
  • 注册日期2002-11-17
  • 最后登录2004-10-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-10-14 15:01
  sorry,前面问题没有描述清楚,是这样的:
  
  我的板子sysClkRateSet(100),但是1秒为间隔连续调用
  tickGet得到的一组数值间隔只有20~30,而别的板子
  为100左右(以上为目测值,CPU都是850,系统时钟
  都是50Mhz)。这样表现出来我的板子启动时串口每秒
  数字跳动缓慢,本来7秒的时间实际上是30秒左右。

  个人感觉问题出在tickGet上,哪位大侠给解释一下,
  还有如果有tickGet函数的源码就更好了!  
fwzfwz1
驱动中牛
驱动中牛
  • 注册日期2002-11-01
  • 最后登录2007-06-01
  • 粉丝0
  • 关注0
  • 积分80分
  • 威望8点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-10-14 21:14
你的bsp中的系统时钟的设置是不是和实际值不符。仔细比较一下这个板子的bsp和其他板子的bsp。
有了驱动,人才有了力量。
fwzfwz1
驱动中牛
驱动中牛
  • 注册日期2002-11-01
  • 最后登录2007-06-01
  • 粉丝0
  • 关注0
  • 积分80分
  • 威望8点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-10-14 21:16
还有,你将ticks设置为100时,测到20-30个ticks。你再将tick设置为60,再测一下。看看能测到多少。也好定位问题。
有了驱动,人才有了力量。
static_li
驱动牛犊
驱动牛犊
  • 注册日期2002-11-17
  • 最后登录2004-10-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-10-17 09:52
我的板子的系统时钟和别人一致,都是50M,我们用的850的时钟只能到50M;
若将TICK设为60,则每次得到的TICK数更少,为15左右;
查看了TICKGET的源码,现觉得不是TICK设置的问题,觉得还是硬件时钟的问题,但TICK是由850的哪个硬件时钟计量的却不太明白,好象不应该是850的系统时钟,查看了850的手册,怀疑是TIMEBASE时钟,因为:
TICK设为100,实测为每秒25个TICK;
TICK设为60,实测为每秒15个TICK;
实测值为设置值的1/4;
但TIMEBASE的值与其它板的设置也一样啊,真是奇怪?
个位的板子每秒的TICK数与设置值都是一致的吗?
fwzfwz1
驱动中牛
驱动中牛
  • 注册日期2002-11-01
  • 最后登录2007-06-01
  • 粉丝0
  • 关注0
  • 积分80分
  • 威望8点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-10-17 16:26
你的测试在某种意义说明了一定的问题。我觉的你还可以尝试以下两点:
1、用示波器测试一下输入时钟到底是多少;
2、查一下和输入时钟有关的两个宏(我记得是两个)的值是多少。
3、如果上面两种方法还是解决不了你的问题。你可以考虑用目录比较工具,比较一下你的这个板子的bsp和其他板子的bsp。
有了驱动,人才有了力量。
zhyxue
驱动牛犊
驱动牛犊
  • 注册日期2002-10-09
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-10-25 15:57
int sysClkRateGet (void)
    
    {
    return (sysClkTicksPerSecond);
    }

而在sysClkRateSet(yourSet)
{
   sysClkTicksPerSecond=yourSet;
}
所以,还是看看是不是这块班子的问题吧?
游客

返回顶部