首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

RL-RTX遇到一例os_dly_wait()延时不准解决办法

RL-RTX遇到一例os_dly_wait()延时不准解决办法

最近在LPC1788上使用RL-RTX遇到一例os_dly_wait()延时不准的问题,延时的时间比预想的差了十倍。        systick设置了每tick为10ms,调用os_dly_wait(2)后发现task执行时候没有按预想的20ms延时,而是2ms。怀疑时钟问题,但也不可能差那么多,测试了timer0,timer1都是正常的。
        研究了好久最后发现是RTX的配置文件(RTX_Conf_CM.c)造成的,以前把这个文件放到了工程下而不是引用Keil MDK安装目录(C:\Keil\ARM\RL\RTX\Config)下的,后来MDK从v4.2一路升级到了v4.7了,这个文件没跟着更新。旧版的配置文件相对新版少了Hardware timer的选项导致出错

     选择Hardware timer,频率同CCLK(120MHz),每tick 10ms




    总结:针对类似问题,先确保RTX配置文件版本正确,然后选择RTX使用的Timer,根据时钟配置设置好相应的频率。如果还是有误差则要检查Clock相关配置(PLL0/1,分频系数等)。如果还是不行,则要从硬件(晶振)方面查了。
返回列表