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

📄 main.c

📁 ucos 在GAMEBOY上的移植
💻 C
字号:
#define MAIN_GLOBALS
#include "includes.h"

OS_STK TaskStartStka[256];
OS_STK TaskStartStkb[256];
OS_STK TaskStartStkc[256];
OS_STK TaskStartStkd[256];

const char str1[] = "-\\|/" ;
const char str2[] = "-/|\\" ;

void InitTickTimer(void)		// 初始化tick定时器 因为比较重要不放在初始化AGB中
{
	REG_IME = 0;
	setb(REG_IE,INT_TIM3);
	REG_TM3CNT = 0x00C1;

	REG_TM3D = 0x10000 - (GBA_FOSC/64)/OS_TICKS_PER_SEC;

	REG_IME = 1;
}

void TaskStarta(void *yydata)
{
	u16 a=0;
	yydata = yydata;

	printLCD("* %s V%d.%d *\r\n","uCOS-II",OSVersion()/100,OSVersion()%100);

	while(1)
	{
		if(a++>3) a=0;
		setxy(100,1*ASC_FONT_H);
		printLCD("%c",str1[a]);
		OSTimeDly(10);
    }
}

void TaskStartb(void *yydata)
{
	u16 a=0;
	yydata = yydata;

	while(1)
	{
		if(a++>3) a=0;
		setxy(100,2*ASC_FONT_H);
		printLCD("%c",str2[a]);
		OSTimeDly(15);
    }
}

void TaskStartc(void *yydata)
{
	u32 a=0;
	yydata = yydata;

	while(1)
	{
		setxy(18*ASC_FONT_W,0);
		printLCD("%d",a++);

		OSTimeDly(1);
    }
}

void TaskStartd(void *yydata)
{
	u32 a=0;
	yydata = yydata;

	while(1)
	{
		setxy(100,3*ASC_FONT_H);
		printLCD("%d",a++);

		OSTimeDly(1*OS_TICKS_PER_SEC);
    }
}

void main(void)
{
	lcdinit();
	SetColor(COLOR_WHITE,COLOR_BLACK);

	OSInit();
// creat my task here

	OSTaskCreate(TaskStarta, NULL, &TaskStartStka[255],2);
	OSTaskCreate(TaskStartb, NULL, &TaskStartStkb[255],3);
	OSTaskCreate(TaskStartc, NULL, &TaskStartStkc[255],4);
	OSTaskCreate(TaskStartd, NULL, &TaskStartStkd[255],5);

	InitTickTimer();

	OSStart();
}



⌨️ 快捷键说明

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