牛东 发表于 2016-9-6 18:09:06

加rtx51 tiny 后程序不运行了

本帖最后由 牛东 于 2016-9-6 21:28 编辑

没有加tx51 tiny 时,,


#include "STC12C5A60S2.h"
#include "system.h"
#include "usart.h"
#include "timer.h"
#include "adc.h"
#include "tlc5615.h"
#include "intrins.h"
#include "wotchdog.h"
#include "emergstop.h"
#include "Beep.h"
#include "crc8.h"

//====================
void Main()
{
        InitDog();
        SystemInit();              
        UsartInit();
        timer1_init();
        InitADC();
        while(1)
        {               
                SendADCValue(Get_adc(0));
                ReceiveProcess(&ReceiveBuf,&UartReceiveData);
                ReceiveContrl(&UartReceiveData);               
                BeepProcess(BeepCount);
        }   
}

程序运行正常,加了rtx后编译没问题,但实际连第一个任务单独运行都不行,串口助手连数据都收不到了,求助!!


#include "stc12c5a60s2.h"
#include "rtx51tny.h"
#include "system.h"
#include "usart.h"
#include "timer.h"
#include "adc.h"
#include "tlc5615.h"
#include "intrins.h"
#include "wotchdog.h"
#include "emergstop.h"
#include "Beep.h"
#include "crc8.h"


/************************************************
************************************************/
void main_job() _task_ 0
{
        InitDog();
        SystemInit();              
        UsartInit();
        timer1_init();
        InitADC();
       
        os_create_task(1);//´´½¨½ø³Ì1
        os_create_task(2);//´´½¨½ø³Ì2
        os_create_task(3);//´´½¨½ø³Ì3
        os_create_task(4);//´´½¨½ø³Ì4
       
        os_delete_task(0);//½«×ÔÉíɾ³ý
}
/************************************************
//¹¦ÄÜ£º
************************************************/
void SendADCValue_job() _task_ 1
{       
        while(1)
        {
                SendADCValue(Get_adc(0));
                os_wait(K_TMO,10,0);
        }
}
/************************************************
//¹¦ÄÜ£º
************************************************/
void ReceiveProcess_job() _task_ 2
{
        while(1)
        {
                ReceiveProcess(&ReceiveBuf,&UartReceiveData);
                os_wait(K_TMO,50,0);
        }
}

/************************************************
//¹¦ÄÜ£º
************************************************/
void ReceiveContrl_job() _task_ 3
{
        while(1)
        {
                ReceiveContrl(&UartReceiveData);
           os_wait(K_TMO,20,0);
        }
}

/************************************************
//¹¦ÄÜ£º
************************************************/
void BeepProcess_job() _task_ 4
{
        while(1)
        {
                BeepProcess(BeepCount);
                os_wait(K_TMO,8,0);
        }
}

整个项目请打开附件压缩包!!
用的是keil5 c51

lizengmao 发表于 2016-9-6 19:29:39

先看rtx51的手册吧,论坛有中文版下载。看起来似乎没有创建任务,及没有加入RTX51的配置。

小李非刀 发表于 2016-9-7 15:17:33

建议先拿RTX51自带的例程测试下,熟悉RTX51的套路,再写自己的程序。RTX51 TINY本来是个简单的内核,但是还是得依据人家定的规则来做。

牛东 发表于 2016-9-7 16:24:55

小李非刀 发表于 2016-9-7 15:17
建议先拿RTX51自带的例程测试下,熟悉RTX51的套路,再写自己的程序。RTX51 TINY本来是个简单的内核,但是还 ...

谢谢提醒!!再问下斑竹为什么在Conf_tny.a51里面修改INT_CLOCK的值后不见效果,Conf_tny.a51已经加到工程里面去了!!

INT_CLOCK        EQU          925        ; default is 10000 cycles       //11.0592NHz /1003us

小李非刀 发表于 2016-9-19 13:51:59

修改这个值是匹配你的主频的,比如用11。0592MHZ,节拍为1000,则值为11059200/12/1000=922.
页: [1]
查看完整版本: 加rtx51 tiny 后程序不运行了