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

📄 test.c

📁 基于UCOS-II操作系统
💻 C
字号:
#include "config.h"

#define  WORK_SIZE                  64
OS_STK        WorkStart[WORK_SIZE];
OS_STK        WorkStk[WORK_SIZE];

#define	  K1	(1 << 14)             /* P0.14为k1 */
#define	  BUZZ	(1 << 7)              /* P0.07为蜂鸣器 */


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

    OSTaskCreate(CtrlStart, (void *)0, &WorkStart[WORK_SIZE - 1], 0);
    OSStart();
    return 0;
}

/******************************************************************************
** 函数名称: CtrlStart
** 功能描述: 第一个任务
******************************************************************************/

        void  CtrlStart(void *pdata)
{
                                              /* 避免编译警告 */

    TargetInit();                                               /* 目标板初始化 */
    IODIR &= ~K1;			                                 /* 设置K1为输入*/
    IOSET = BUZZ;
    IODIR |= BUZZ;			                              /* 设置蜂鸣器为输出*/
    PINSEL0 = (PINSEL0 & 0xcffff3ff);                      /* 管教选择模块初始化 */
    
    OSTaskCreate(Work, (void *)0, &WorkStk[WORK_SIZE - 1], 10);         /* 创建任务 */

    for (;;)
    {
        OSTaskSuspend(OS_PRIO_SELF);
        IOCLR = BUZZ;
        OSTimeDly(OS_TICKS_PER_SEC / 8);
        IOSET = BUZZ;
        OSTimeDly(OS_TICKS_PER_SEC / 4);

        IOCLR = BUZZ;
        OSTimeDly(OS_TICKS_PER_SEC / 8);
        IOSET = BUZZ;
        OSTimeDly(OS_TICKS_PER_SEC / 4);
    }
}

/******************************************************************************** 函数名称: TaskUart0Revice
** 功能描述: μCOS-II的按键检测任务
*******************************************************************************/
        void  Work(void *pdata)
{
   
    for (;;)
    {
        OSTimeDly(OS_TICKS_PER_SEC / 50);               /* 延时20毫秒 */
        if ((IOPIN & K1) != 0)
        {
            continue;
        }
        OSTimeDly(OS_TICKS_PER_SEC / 50);               /* 延时20毫秒 */
        if ((IOPIN & K1) != 0)
        {
            continue;
        }
        OSTaskResume(0);
        while ((IOPIN & K1) == 0)
        {
            OSTimeDly(OS_TICKS_PER_SEC / 50);           /* 延时20毫秒 */
        }
    }
}
/********************************************************************************                            End Of File
******************************************************************************/

⌨️ 快捷键说明

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