⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ext1.c

📁 单片机C语言参考程序
💻 C
字号:
/*********************************************************************************************************
**				                               Small RTOS(51)
**                                   The Real-Time Kernel(For Keil c51)
**
**                                  (c) Copyright 2002-2003, chenmingji
**                                           All Rights Reserved
**
**                                                  V1.12.0
**
**
**--------------文件信息--------------------------------------------------------------------------------
**文   件   名: ext1.c
**创   建   人: 陈明计
**最后修改日期: 2002年12月30日
**描        述: ext1源代码。
**
**--------------历史版本信息----------------------------------------------------------------------------
** 创建人: 陈明计
** 版  本: V0.50
** 日 期: 2002年2月22日
** 描 述: 原始版本
**
**------------------------------------------------------------------------------------------------------
** 修改人: 陈明计
** 版  本: V1.11.0
** 日 期: 2003年12月2日
** 描 述: 删除TaskD代码
**
**------------------------------------------------------------------------------------------------------
** 修改人: 陈明计
** 版  本: V1.12.0
** 日 期: 2003年12月2日
** 描 述: 无变化
**
**--------------当前版本修订------------------------------------------------------------------------------
** 修改人: 
** 日 期:
** 描 述:
**
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/


#include "config.h"

void TaskA(void) reentrant;
void TaskB(void) reentrant;
uint8 xdata NotUse _at_ 0x00;
uint8 xdata StackS[2][1024];

        void main(void)
{
    NotUse = 0x55;
    OSInit();
	TMOD = (TMOD & 0XF0) | 0X01;
	TL0 = 0x0;
	TH0 = 0x0;
	TR0 = 1;
	ET0 = 1;

    OSTaskCreate(TaskA, StackS[0] + 1024 - 1, 0);
    OSTaskCreate(TaskB, StackS[1] + 1024 - 1, 1);


    while(1)
    {
        PCON = PCON | 0x01;                     /* CPU进入休眠状态 */
    }
}

        uint8 Max(uint8 a, uint8 b) reentrant
{
    uint8 Rt;
    void NotUseFunction(void);
    
    NotUseFunction();
    Rt = a;
    if (b >= a)
    {
        Rt = b;
    }
    return Rt;
}
            

        void TaskA(void) reentrant
{

    while (1)
    {
        OSTimeDly(1);
        if (Max(1, 2) != 2)
        {
            while (1);
        }
    } 
}

        void TaskB(void) reentrant
{
    while (1)
    {
        if (Max(3, 4) != 4)
        {
            while (1);
        }
    }
}

/**********************end****************************************/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -