这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 请教怎样设置uC Os 中的TICK的长短

共3条 1/1 1 跳转至

请教怎样设置uC Os 中的TICK的长短

菜鸟
2005-05-29 05:08:04     打赏

在ARM7的EB55的实验评估板上,我建立了三个进程,其中一个是按钮扫描进程,在它的无限循环中都用了OSTimeDly(1),这个进程的优先级设置的比其他两个进程的优先级都高。

可是系统对按钮的响应时间还是原来的3秒左右。不知道为什么会这样,恳请朋友指教,谢谢!

[align=right][color=#000066][此贴子已经被作者于2005-5-29 17:05:23编辑过][/color][/align]



关键词: 请教     怎样     设置     中的     长短    

菜鸟
2005-06-01 05:37:00     打赏
2楼

非常感谢arronkan的指点!

我用的是EB55 V2.20的评估板。现有的TimeBase好象不是5ms,虽然Os.cfg.h的OS_TICKS_PER_SEC缺省值是200。我在想是否在汇编代码或系统初始化代码中有修改TimeBase的部分,如果有的话,修改后,就可以象您说的那样设定需要的周期了。

后面的OSTimeDlyHMSM函数我还没有试用过,以前看过它的代码,可能也是基于TimeBase的吧。

在这两个方向上,我再试一下,然后把结果帖在这里。以后还请您多多指教!


菜鸟
2005-06-02 02:38:00     打赏
3楼
找到解决办法了。在 void timer_init ( void ) 中,将原来的

AT91F_TC_Open(AT91C_BASE_TC0,4,AT91C_ID_TC0); 改为

AT91F_TC_Open(AT91C_BASE_TC0,2,AT91C_ID_TC0);

然后任务中的无限循环内用OSTimeDly(4),任务调度就很及时。

定时器T0的MODE原来的是4,对应较高的分频,现该为2对应较低的分频。

原来评估板所带的闪烁灯示例程序里,可能是为了让灯闪得不太快,而把时钟选的较慢。

究竟任务停止的具体时间,还不太清楚,等以后参考有关的书细看。

在修改时钟选择数之前,改OS_TICKS_PER_SEC值或使用OSTimeDlyHMSM都不行。

谢谢arronkan!


共3条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]