📄 ext1.c
字号:
/*********************************************************************************************************
** Small RTOS(51)
** The Real-Time Kernel(For Keil c51)
**
** (c) Copyright 2002-2003, chenmingji
** All Rights Reserved
**
** V1.20.0
**
**
**--------------文件信息--------------------------------------------------------------------------------
**文 件 名: ext1.c
**创 建 人: 陈明计
**最后修改日期: 2003年8月3日
**描 述: ext1源代码。
**
**--------------历史版本信息----------------------------------------------------------------------------
** 创建人: 陈明计
** 版 本: V0.50
** 日 期: 2002年2月22日
** 描 述: 原始版本
**
**------------------------------------------------------------------------------------------------------
** 修改人: 陈明计
** 版 本: V1.11.0
** 日 期: 2003年12月2日
** 描 述: 删除TaskD代码
**
**------------------------------------------------------------------------------------------------------
** 修改人: 陈明计
** 版 本: V1.12.0
** 日 期: 2003年12月2日
** 描 述: 无变化
**
**------------------------------------------------------------------------------------------------------
** 修改人: 陈明计
** 版 本: V1.20.0
** 日 期: 2003年8月3日
** 描 述: 根据新版本要求修改
**
**--------------当前版本修订------------------------------------------------------------------------------
** 修改人: Crossmind http://www.ednchina.com/Blog/crossmind/
** 日 期: 2008-3-22
** 描 述: Protues 7.2 + EDNCHINA 51仿真板
**
**
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#include "config.h"
#define BIT0 1
#define BIT1 2
#define BIT2 4
#define BIT3 8
#define BIT4 16
#define BIT5 32
#define BIT6 64
#define BIT7 128
void TaskA(void);
void TaskB(void);
void TaskC(void);
void main(void)
{
OSInit();
//系统节拍中断使用定时器0,中断频率为100Hz,晶振12MHz
TMOD = (TMOD & 0XF0) | 0X01;
TH0 = (65536 - (12000000 / 12) / 100) / 256;
TL0 = (65536 - (12000000 / 12) / 100) % 256;
TR0 = 1;
ET0 = 1;
//创建3个任务,分别闪烁三个LED
OSTaskCreate(TaskA, NULL, 0);
OSTaskCreate(TaskB, NULL, 1);
OSTaskCreate(TaskC, NULL, 2);
while(1)
{
PCON = PCON | 0x01; /* CPU进入休眠状态 */
}
}
void TaskA(void)
{
while (1)
{
P1 &= ~BIT0; //LED D1
OSWait(K_TMO,OS_TICKS_PER_SEC/5); //delay
P1 |= BIT0;
OSWait(K_TMO,OS_TICKS_PER_SEC/5);
}
}
void TaskB(void)
{
while (1)
{
P1 &= ~BIT1; //LED D2
OSWait(K_TMO,OS_TICKS_PER_SEC/3);
P1 |= BIT1;
OSWait(K_TMO,OS_TICKS_PER_SEC/3);
}
}
void TaskC(void)
{
while (1)
{
P1 &= ~BIT2; //LED D3
OSWait(K_TMO,OS_TICKS_PER_SEC/2);
P1 |= BIT2;
OSWait(K_TMO,OS_TICKS_PER_SEC/2);
}
}
/*********************************************************************************************************
** End Of File
********************************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -