您当前的位置:五五电子网电子知识单片机-工控设备嵌入式系统-技术uCOS51移植心得[社区] 正文
uCOS51移植心得[社区]

uCOS51移植心得[社区]

点击数:7745 次   录入时间:03-04 11:48:48   整理:http://www.55dianzi.com   嵌入式系统-技术
    TH0=0x70;    //定义Tick=50次/秒(即0.02秒/次)
    TL0=0x00;    //OS_CPU_A.ASM  和  OS_TICKS_PER_SEC
    ET0=1;       //允许T0中断
    TR0=1;  
}

文件名 : YY.C

#include <includes.h>

#define MAX_STK_SIZE 64

void TaskStartyya(void *yydata) reentrant;
void TaskStartyyb(void *yydata) reentrant;
void TaskStartyyc(void *yydata) reentrant;

OS_STK TaskStartStkyya[MAX_STK_SIZE+1];//注意:我在ASM文件中设置?STACK空间为40H即64,不要超出范围。
OS_STK TaskStartStkyyb[MAX_STK_SIZE+1];//用户栈多一个字节存长度
OS_STK TaskStartStkyyc[MAX_STK_SIZE+1];

void main(void)
{
    OSInit();
   
    InitTimer0();
    InitSerial();
    InitSerialBuffer();
   
    OSTaskCreate(TaskStartyya, (void *)0, &TaskStartStkyya[0],2);
    OSTaskCreate(TaskStartyyb, (void *)0, &TaskStartStkyyb[0],3);
    OSTaskCreate(TaskStartyyc, (void *)0, &TaskStartStkyyc[0],4);
   
    OSStart();
}


void TaskStartyya(void *yydata) reentrant
{
    yydata=yydata;
    clrscr();
    PrintStr(" ******************************* ");
    PrintStr(" *     Hello! The world.       * ");
    PrintStr(" ******************************* ");
   
    for(;;){
        PrintStr(" AAAAAA111111 is active. ");
        OSTimeDly(OS_TICKS_PER_SEC);   
    }   
}

void TaskStartyyb(void *yydata) reentrant
{
    yydata=yydata;
   
    for(;;){
        PrintStr(" BBBBBB333333 is active. ");
        OSTimeDly(3*OS_TICKS_PER_SEC);   
    }   
}

void TaskStartyyc(void *yydata) reentrant
{
    yydata=yydata;
   
    for(;;){
        PrintStr(" CCCCCC666666 is active. ");
        OSTimeDly(6*OS_TICKS_PER_SEC);   
    }   
}


* - 本贴最后修改时间:2003-5-29 11:25:08 修改者:gdtyy
* - 修改原因:+

作者信箱    asdjf@163.com   
 
 
社区原文 http://www.55dianzibbs.com/club/bbs/list.asp?boardid=8&page=1&t=338692&tp=uCOS51%u79FB%u690D%u5FC3%u5F97



上一页  [1] [2] [3] [4] [5] [6] 


本文关键字:暂无联系方式嵌入式系统-技术单片机-工控设备 - 嵌入式系统-技术