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

📄 test.c

📁 LPC2100DEMO板开发原代码,包括网络键盘定时器发光管等驱动代码
💻 C
字号:
/*******************************************************************************************************
**                                     西安傅立叶电子科技
**                                Xian FFT Electornic Technology
**                                   http://www.fftchina.com
********************************************************************************************************/

// μCOS-II上的LPC210x的通用IO使用的例子,按板上的KEY1则蜂鸣器会响三声


#include "config.h"

#define  TASK_STK_SIZE                  64
OS_STK        TaskStartStk[TASK_STK_SIZE];
OS_STK        TaskStk[TASK_STK_SIZE];

#define	  KEY1	(1 << 17)             /* P0.17为key1 */

#define	  BEE	(1 << 7)              /* P0.07为蜂鸣器 */


void  TaskStart(void *data);
void  Task(void *data);
/*********************************************************************************************************
** 函数名称: main
** 功能描述: c语言的主函数,由它启动多任务环境
********************************************************************************************************/
        int main (void)
{
    OSInit();

    OSTaskCreate(TaskStart, (void *)0, &TaskStartStk[TASK_STK_SIZE - 1], 0);
    OSStart();
    return 0;
}

/*********************************************************************************************************
** 函数名称: TaskStart
** 功能描述: μCOS-II的第一个任务,通常由它初始化目标板和建立其它任务
********************************************************************************************************/

        void  TaskStart(void *pdata)
{	
	uint8 i;
    pdata = pdata;                                                  /* 避免编译警告 */

    TargetInit();                                                   /* 目标板初始化 */
    IODIR &= ~KEY1;			                                        /* 设置KEY1为输入*/
    IOSET = BEE;
    IODIR |= BEE;			                                        /* 设置蜂鸣器为输出*/
    PINSEL0 = (PINSEL0 & 0xcffff3ff);                               /* 管教选择模块初始化 */
    
    OSTaskCreate(Task, (void *)0, &TaskStk[TASK_STK_SIZE - 1], 10); /* 创建任务     */
	
	while(1)
    {
        OSTaskSuspend(OS_PRIO_SELF);
        for (i=0;i<3;i++){
        IOCLR = BEE;
        OSTimeDly(OS_TICKS_PER_SEC / 16);
        IOSET = BEE;
        OSTimeDly(OS_TICKS_PER_SEC / 16);
		}
    }
}

/*********************************************************************************************************
** 函数名称: Key1的时延
** 功能描述: μCOS-II的任务
********************************************************************************************************/
        void  Task(void *pdata)
{
    pdata = pdata;                                      /* 避免编译警告 */

    for (;;)
    {
        OSTimeDly(OS_TICKS_PER_SEC / 50);               /* 延时20毫秒 */
        if ((IOPIN & KEY1) != 0)
        {
            continue;
        }
        OSTimeDly(OS_TICKS_PER_SEC / 50);               /* 延时20毫秒 */
        if ((IOPIN & KEY1) != 0)
        {
            continue;
        }
        OSTaskResume(0);
        while ((IOPIN & KEY1) == 0)
        {
            OSTimeDly(OS_TICKS_PER_SEC / 50);           /* 延时20毫秒 */
        }
    }
}

⌨️ 快捷键说明

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