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

📄 multitask.c

📁 瑞泰创新的GX-ARM9-2410EP教学实验系统的所有基础实验源代码,内容齐全,解析清楚,基本上每个实验结果都有图片显示
💻 C
字号:
#include <string.h>
#include "includes.h"
#include "consol.h"

#define  TASK_STK_SIZE 256                      /* Size of each task's stacks (# of WORDs) */
#define  NO_TASKS 10                   /* Number of identical tasks */


static OS_STK TaskStk[NO_TASKS][TASK_STK_SIZE];      /* Tasks stacks */

//-----------------------------------------------
//

static void WriteString(char *str)
{//写字符串
	CONSOL_Printf(str);
}
//-----------------------------------------------

static void Task1 (void *Task)
{
    char str[8];
    sprintf(str, "%d", (int)Task);
    while(1)
    {
    	WriteString(str);
    	OSTimeDly(500);
    }
//    OSTaskDel(OS_PRIO_SELF);//删除自己
}


#define PRIO_BASE 30
void RunTestMultitask()
{
    char key='+';
    int i=0;
    WriteString("**多任务的使用**  <按ESC键结束测试>\n");
    WriteString("  <按'+'添加一个任务>\n");
    WriteString("  <按'-'减少一个任务>\n");
    OSTimeDly(2000);
    WriteString("\n按任意键开始\n");
    CONSOL_GetCh();
    while(key != 0x1b)
    {
    	switch(key)
    	{
    	case '+':
    		if(i < 10)
    		{
    			OSTaskCreate(Task1, (void*)i, (void*)&TaskStk[i][TASK_STK_SIZE-1], PRIO_BASE+i);
    			i++;
    		}
    		break;
    	case '-':
    		if(i > 0)
    			OSTaskDel(PRIO_BASE+(i--));
    		break;
    	}
    	key = 0;
    	CONSOL_GetChar(&key);
	    OSTimeDly(100);
    }
    OSTimeDly(500);
}

⌨️ 快捷键说明

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