注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

小哲

从今以后,你会是所有幸福的理由!

 
 
 

日志

 
 

ucos例程1  

2011-12-05 16:09:55|  分类: 操作系统编程 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
01   
02  #include "includes.h" 
03   
04  #define  TASK_STK_SIZE   512            //任务堆栈长度 
05   
06  OS_STK   TaskStartStk[TASK_STK_SIZE];        //定义任务堆栈区 
07  INT16S   key;                    //用于退出uCOS_II的键 
08  INT8U     x = 0, y = 0;                //字符显示位置 
09   
10  void  MyTask(void *data);            //声明一个任务 
11  /************************主函数*********************************************/ 
12  void  main (void
13  { 
14      char *s = "M";                //定义要显示的字符 
15   
16      OSInit();                    //初始化uCOS_II 
17   
18      PC_DOSSaveReturn();                //保存Dos环境 
19      PC_VectSet(uCOS, OSCtxSw);            //安装uCOS_II中断 
20   
21      OSTaskCreate(MyTask,            //创建任务MyTask 
22                   s,                //给任务传递参数 
23                   &TaskStartStk[TASK_STK_SIZE - 1],//设置任务堆栈栈顶指针 
24                   0);                //使任务MyTask的优先级别为0 
25      OSStart();                    //启动uCOS_II的多任务管理 
26  } 
27   
28   
29  void  MyTask (void *pdata) 
30  { 
31  #if OS_CRITICAL_METHOD == 3 
32      OS_CPU_SR  cpu_sr; 
33  #endif 
34   
35      pdata = pdata; 
36   
37      OS_ENTER_CRITICAL(); 
38      PC_VectSet(0x08, OSTickISR);    //安装uCOS_II时钟中断向量 
39      PC_SetTickRate(OS_TICKS_PER_SEC);    //设置uCOS_II时钟频率 
40      OS_EXIT_CRITICAL(); 
41   
42      OSStatInit();            //初始化uCOS_II的统计任务 
43   
44      for (;;) 
45      { 
46          if (x > 10
47          { 
48              x = 0
49              y += 2
50          } 
51   
52          PC_DispChar(x, y,        //在x,y位置显示s中的字符 
53                      *(char *)pdata, DISP_BGND_BLACK + DISP_FGND_WHITE ); 
54          x += 1
55   
56          //如果按下Esc键则退出uCOS_II 
57          if (PC_GetKey(&key) == TRUE) 
58          { 
59              if (key == 0x1B
60              { 
61                  PC_DOSReturn(); 
62              } 
63          } 
64   
65          OSTimeDlyHMSM(0010);    //等待 
66      } 
67  } 
68   
69
  评论这张
 
阅读(532)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017