阅读:2822回复:7
关于tick的问题
850的板子,设为每秒100tick,结果发现运行时间很慢,每秒只有20~30个Tick,怎么回事?tick与850内部的哪个时钟有关?
|
|
沙发#
发布于:2004-10-13 20:11
tick值不是你可以随便设置的,tick值太大的话,系统的负荷将太大。任务调动花费了很多的时间,系统当然就慢了。
不过100不算大。 |
|
|
板凳#
发布于:2004-10-14 15:01
sorry,前面问题没有描述清楚,是这样的:
我的板子sysClkRateSet(100),但是1秒为间隔连续调用 tickGet得到的一组数值间隔只有20~30,而别的板子 为100左右(以上为目测值,CPU都是850,系统时钟 都是50Mhz)。这样表现出来我的板子启动时串口每秒 数字跳动缓慢,本来7秒的时间实际上是30秒左右。 个人感觉问题出在tickGet上,哪位大侠给解释一下, 还有如果有tickGet函数的源码就更好了! |
|
地板#
发布于:2004-10-14 21:14
你的bsp中的系统时钟的设置是不是和实际值不符。仔细比较一下这个板子的bsp和其他板子的bsp。
|
|
|
地下室#
发布于:2004-10-14 21:16
还有,你将ticks设置为100时,测到20-30个ticks。你再将tick设置为60,再测一下。看看能测到多少。也好定位问题。
|
|
|
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数与设置值都是一致的吗? |
|
6楼#
发布于:2004-10-17 16:26
你的测试在某种意义说明了一定的问题。我觉的你还可以尝试以下两点:
1、用示波器测试一下输入时钟到底是多少; 2、查一下和输入时钟有关的两个宏(我记得是两个)的值是多少。 3、如果上面两种方法还是解决不了你的问题。你可以考虑用目录比较工具,比较一下你的这个板子的bsp和其他板子的bsp。 |
|
|
7楼#
发布于:2004-10-25 15:57
int sysClkRateGet (void)
{ return (sysClkTicksPerSecond); } 而在sysClkRateSet(yourSet) { sysClkTicksPerSecond=yourSet; } 所以,还是看看是不是这块班子的问题吧? |
|