djjyi 发表于 2008-8-14 11:20

请教RTX51 tiny问题

我按照手册重新写了个简单程序如下:<br /><br />#include&nbsp;&ltrtx51tny.h&gt&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />#include&nbsp;&ltreg52.h&gt<br /><br />long&nbsp;counter0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />long&nbsp;counter1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;<br />job0&nbsp;()_task_&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;os_create_task(1);&nbsp;&nbsp;&nbsp;//建立任务0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><br />&nbsp;&nbsp;while&nbsp;(1)&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;counter0++;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;}<br />}<br />&nbsp;<br />job1&nbsp;()_task_&nbsp;1&nbsp;<br />{<br />&nbsp;&nbsp;while&nbsp;(1)&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;counter1++;&nbsp;&nbsp;<br />&nbsp;&nbsp;}<br />}<br />编译是通过了&nbsp;但是仿真时程序老是执行任务0&nbsp;不能执行任务1&nbsp;请教各位是什么原因?

djjyi 发表于 2008-8-14 14:34

re

怎么没人理?是不是太简单了?

John_Lee 发表于 2008-8-17 13:22

你没有把 rtx51tiny 设置成 round-robin 模式

djjyi 发表于 2008-8-18 08:38

re

?那怎么设置呢?不是直接#include&nbsp;&ltrtx51tny.h&gt&nbsp;后&nbsp;在operating&nbsp;设置rtx51tiny就行了?

xjycug 发表于 2010-2-6 21:38

这个问题你解决了吗?我现在也遇到了。但是我觉得不是设置round-robin的问题,因为设置为round-robin只需要将"Conf_tny.A51"文件中TIMESHARING不设置为0即可,但是我也试过,好象还是只能在task0中跑,我是把编译得到的.hex文件直接下载到单片机中的,觉得程序序运行得还很乱,如果只有task0一个任务还运行正确,建立了其他任务后,程序运行得相当乱,不是我期望得那种,真不知道是咋回事??

zdhlixiang2006 发表于 2010-3-21 14:48

我建立了一个工程,把楼主的程序拷了进去,编译通过了,仿真全速运行,观察两个计数变量,发现可以执行啊,但是如果把其中一个设为断点,就发现只会在一个任务里边运行了,不知道怎么回事

dongshan 发表于 2010-3-22 19:12

在counter0++; 后加一句 os_wait(K_TMO,2,0);试试...

zdhlixiang2006 发表于 2010-3-23 13:58

不要在一个任务里加断点,那样当然出不去了

zf_015820 发表于 2012-11-16 18:18

设置为round-robin只需要将"Conf_tny.A51"文件中TIMESHARING不设置为0即可; 如果这个设置后,不起作用,就应该是软件要升级了,升级成7.0以上版本,就可以用了
页: [1]
查看完整版本: 请教RTX51 tiny问题