导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→C51编程:老古,我想你对 RTX 一定很熟悉吧。请帮忙看一[johnblue]

 *第1338篇: C51编程:老古,我想你对 RTX 一定很熟悉吧。请帮忙看一下这个程序。

  
楼 主:johnblue 2001年12月4日13:14
 C51编程:老古,我想你对 RTX 一定很熟悉吧。请帮忙看一下这个程序。
#include <reg52.h>
#include <rtx51tny.h>

void Init(void) _task_ 0
{
    os_create_task(1);
    os_create_task(2);
    os_delete_task(0);
}

void CommonTask(unsigned char ch) reentrant
{
    P3=ch;
}

void Task1(void) _task_ 1
{
    for(;;)
    {
        EA=0;
        CommonTask('1');
        EA=1;
    }
}


void Task2(void) _task_ 2
{
    for(;;)
    {
        EA=0;
        CommonTask('2');
        EA=1;
    }
}

///  运行一段时间之后总是跑飞,不知何故。也许RTX-Tiny不允许任务调用公共函数?
///  可是如果把 CommonTask 的 reentrant 属性去掉,又能正常运行了。难道在
///  RTX-Tiny 中不允许任务调用可重入函数?那就太可笑了。

///  只在软件模拟器上运行过。未经硬件验证。

  
2楼:老古 2001年12月4日16:05
 多任务操作系统要用定时器0的中断做为调度,你的程序关闭中断,自然就无法切换任务
  
3楼:johnblue 2001年12月4日18:23
 请你运行一下试试,主要的问题不是不能切换任务,而是总是跑飞了
刚开始任务是可以切换的,过一段时间就跑到一个随机的地址去了。

>>>>>>对该主题发表你的看法

本主题贴数3,分页: [第1页]


[上一篇主题]:C51编程:关于TCP/IP

[下一篇主题]:硬件:需求EZ_USB系列