?? 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 + -