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

📄 main.c

📁 博创2410的实验代码
💻 C
字号:
/***************************************************************************\
	Copyright (c) 2004-2007 threewater@up-tech.com, All rights reserved.
	by threewter	2004.5.12
\***************************************************************************/
/***************************************************************************\
    #说明: C  main 函数,ucos-ii初始化等定义
	----------------------------------  Bug  --------------------------------------

	----------------------------------  TODO list  --------------------------------------

	----------------------------------修正--------------------------------------
	2004-5-12	创建

\***************************************************************************/

#include"../ucos-ii/includes.h"               /* uC/OS interface */
#include "../ucos-ii/add/osaddition.h"
#include "../inc/drivers.h"

#include "../inc/sys/lib.h"
#include "../src/gui/gui.h"
#include <string.h>
#include <stdio.h>

#pragma import(__use_no_semihosting_swi)  // ensure no functions that use semihosting 


///******************任务定义***************///

OS_STK Main_Stack[STACKSIZE]={0, };   //Main_Test_Task堆栈
void Main_Task(void *Id);             //Main_Test_Task
#define Main_Task_Prio     12

OS_STK test_Stack[STACKSIZE]={0, };   //test_Test_Task堆栈
void test_Task(void *Id);             //test_Test_Task
#define test_Task_Prio     15


/**************已经定义的OS任务*************
#define SYS_Task_Prio				1
#define Touch_Screen_Task_Prio		9
#define Main_Task_Prio     12
#define Key_Scan_Task_Prio      58
#define Lcd_Fresh_prio           59
#define Led_Flash_Prio           60

***************************************/////////



///*****************事件定义*****************///


/////////////////////////////////////////////////////
//                  Main function.                //
////////////////////////////////////////////////////
int main(void)
{

	ARMTargetInit();        // do target (uHAL based ARM system) initialisation //

	OSInit();               // needed by uC/OS-II //

	OSInitUart();           //串口初始化

	initOSFile();           //OS文件系统初始化
#if USE_MINIGUI==0
	initOSMessage();         //创建OS消息队列
	initOSList();            //申请系统列表
	initOSDC();              //申请DC 
	initOSCtrl();            //申请系统控件 
	LoadFont();              //加载字库 
#endif

	loadsystemParam();
	
	// create the tasks in uC/OS and assign increasing //
	// priorities to them so that Task3 at the end of  //
	// the pipeline has the highest priority.          //
	LCD_printf("Create task on uCOS-II...\n");
	OSTaskCreate(Main_Task,  (void *)0,  (OS_STK *)&Main_Stack[STACKSIZE-1],  Main_Task_Prio);
//	OSTaskCreate(test_Task,  (void *)0,  (OS_STK *)&test_Stack[STACKSIZE-1],  test_Task_Prio);

	OSAddTask_Init(1);
  
	LCD_printf("Starting uCOS-II...\n");
	LCD_printf("Entering graph mode...\n");
	LCD_ChangeMode(DspGraMode);

	OSStart();              // start the OS //

	// never reached //
	return 0;
}//main


char TextFilename[]="/sys/ucos/fj/test.txt";

int readline(char* str, int n, FILE *pfile)
{
	int i;
	for(i=0; i<n; i++){
		if(fread(str, 1, 1, pfile)!=1) //读取文件
			return 0;                  //读取失败,直接返回 

		if(*str=='\n'){                //如果读到换行符
			str++; 
			*str=0;
			return i;                 //返回读取字节数
		}
		str++;                        //读取下一字符
	}

	return i;                         //返回读取字节数
}

void Main_Task(void *Id)             //Main_Test_Task
{
	char str[256];//文件缓冲区

	FILE* pfile;//定义文件结构指针
	ClearScreen();//清屏

	LCD_ChangeMode(DspTxtMode);//改变显示模式
	LCD_Cls();//文本模式下清屏

	pfile=fopen(TextFilename,"r");//打开文件

	if(pfile==NULL){//文件打开失败
		LCD_printf("Can't Open file!\n");
		for(;;)
			OSTimeDly(1000);
	}

	while(readline(str, sizeof(str), pfile)){//以行的方式读文件
		LCD_printf(str);//向lcd输出文件内容
	}

	fclose(pfile);//关闭文件

	for(;;)
		OSTimeDly(1000);
}

⌨️ 快捷键说明

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