📄 test.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 + -