标题: UCOSII推箱子游戏程序设计 [打印本页]

作者: 单片机的终结者    时间: 2020-9-12 02:10
标题: UCOSII推箱子游戏程序设计
UCOSII推箱子游戏源程序
  1. #include "includes.h"

  2. #define TASK_STK_SIZE  512       /* Size of each task's stacks (# of WORDs) */
  3. #define TaskStart_Prio        1
  4. #define Task1_Prio                2

  5. OS_STK  TaskStk[OS_MAX_TASKS][TASK_STK_SIZE];    // Tasks stacks
  6. HANDLE mainhandle;                //主线程句柄
  7. CONTEXT Context;                //主线程切换上下文
  8. BOOLEAN FlagEn = 1;                //增加一个全局变量,做为是否时钟调度的标志

  9. void TaskStart(void * pParam) ;
  10. void VCInit(void);                                                //初始化相关变量

  11. int main(int argc, char **argv)
  12. {
  13.         VCInit();
  14.         OSInit();
  15.         OSTaskCreate(TaskStart, 0, &TaskStk[1][TASK_STK_SIZE-1], TaskStart_Prio);
  16.         OSTaskCreate(drawMap, 0, &TaskStk[6][TASK_STK_SIZE-1], 6);
  17.         OSTaskCreate(pushBox, 0, &TaskStk[5][TASK_STK_SIZE-1], 5);
  18.         OSTaskCreate(ScanKey, 0, &TaskStk[7][TASK_STK_SIZE-1], 7);
  19.         OSTaskCreate(winner, 0, &TaskStk[4][TASK_STK_SIZE-1], 4);
  20.         OSStart();               
  21.         return(0);
  22. }

  23. void VCInit(void)
  24. {
  25.         HANDLE cp,ct;
  26.         Context.ContextFlags = CONTEXT_CONTROL;
  27.         cp = GetCurrentProcess();        //得到当前进程句柄
  28.         ct = GetCurrentThread();        //得到当前线程伪句柄
  29.         DuplicateHandle(cp, ct, cp, &mainhandle, 0, TRUE, 2);        //伪句柄转换,得到线程真句柄
  30.                
  31. }

  32. void TaskStart(void * pParam)
  33. {       
  34.         char err;       
  35.         OS_EVENT *sem1;
  36.    
  37.         /*模拟设置定时器中断。开启一个定时器线程,每秒中断100次,中断服务程序OSTickISRuser*/
  38.         timeSetEvent(1000/OS_TICKS_PER_SEC, 0, OSTickISRuser, 0, TIME_PERIODIC);
  39.         OSStatInit(); /*统计任务初始化*/
  40.         sem1 = OSSemCreate(0);
  41.         OSSemPend(sem1, 0, &err);   //等待事件发生,被阻塞;
  42. }
复制代码


推箱子.7z

1.59 MB, 下载次数: 46, 下载积分: 黑币 -5


作者: shumivan    时间: 2021-4-27 17:58
下载下来,自己试着玩玩,听名字挺实用,给孩子做着玩




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1