今天在PC机上第一次运行了UC/OS-II 程序,不是在STM32平台上,成功生成应用程序,显示出了“snail”这个字符串。期间搞明白了很多函数,包括从未用过的PC自带的功能函数。 哈哈,原来WINDOWS下面还有不少可以直接调用的函数。真心不错。搞完单任务,接下来弄双任务。
/********************************************************************************************
**file name : test1.c
**description: 每秒在显示器上打印字母 SNAIL
**author : snail
**vision : 1.0
*********************************************************************************************/
#include "includes.h"
#define TASK_STK_SIZE 512 /*定义堆栈长度*/
OS_STK MytaskSTK[TASK_STK_SIZE]; /*定义任务堆栈区*/
INT16S key ; /*用于退出ucos*/
INT8U x=0,y=0; /*字符显示的位置*/
void TaskOne(void *data);
void main(void)
{
char* s_m="snail";
//初始化uc/os
OSInit();
//保存DOS环境
PC_DOSSaveReturn();
//安装uc/os 任务切换中断向量
PC_VectSet(uCOS,OSCtxSw);
OSTaskCreate(
TaskOne, //创建的任务MyTask
s_m, //给任务传递参数
&MytaskSTK[TASK_STK_SIZE-1], //设置任务堆栈栈顶指针
0 //MyTask 优先级别为0
);
//启动多任务管理
OSStart();
}
/******************************************************************************************
**function name: MyTask
**description : 打印字母SNAIL
**input : *data
**output : none
**return : none
*****************************************************************************************/
void TaskOne(void *pdata)
{
INT8U i=0;
#if OS_CRITICAL_METHOD==3
OS_CPU_SR cpu_sr;
#endif
pdata=pdata; //没有实际意义,仅是为了避免有些编译器会警告pdata这参数没有使用
OS_ENTER_CRITICAL();//一个宏,用来禁止处理器响应中断请求,即关中断
//给ucos安装时钟中断
PC_VectSet(0x08,OSTickISR);
//设置时钟频率,OS_TICKS_PER_SEC=200
PC_SetTickRate(OS_TICKS_PER_SEC);
//一个宏,允许处理器响应中断请求,即开中断
OS_EXIT_CRITICAL();
//测试所使用处理器的速度
OSStatInit();
for(;;)
{
for(i=0;i<5;i++) //无限循环
{
if(x>10)
{
x=0;
y+=2;
}
//调用PC中的函数来显示字符
PC_DispChar(
x,y,
*((char * )pdata+i),
DISP_FGND_RED+DISP_FGND_WHITE
);
x+=1;
OSTimeDlyHMSM(0,0,1,0);
}
y+=2;
//如果按下了ESC键,那么退出UC/OS-II
if(PC_GetKey(&key)==TRUE)
{
if(key==0x1b)
{
//返回dos
PC_DOSReturn();
}
}
}
}
用户1626813 2013-1-24 12:29
345002072_353389109 2013-1-23 22:18
用户1629625 2013-1-23 16:08
345002072_353389109 2013-1-23 08:41
用户377235 2013-1-23 08:17
用户1667988 2013-1-4 10:48
用户1667988 2012-11-1 11:12
用户1667988 2012-10-17 16:55
FT311D优点:市场第一颗专业安卓USB控制主控各种借口支持UART、GPIO、SPI、I2C、PWM 从工业级到消费类,一颗到位两种封装:内置或外置公司开发简单: 1.无须固件 2.专属API,开发更容易 3.会写JAVA,就可以开发应用应用家:1.会装APK就可以用 2.不需要再装驱动更多咨询:eddie@passiontech.net QQ:360693687 电话:13982036731