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

📄 abc.cpp

📁 关于嵌入式操作系统TRON的一个机械控制的例子
💻 CPP
字号:
#include <stdio.h>
#include <dos.h>
#include "time.h"
#include "conio.h"
#include <stdio.h>
#include <stdlib.h> 

typedef  int			S32;
typedef  unsigned int	U32; 
typedef  short			S16;
typedef  unsigned short U14;
typedef  char           S8;
typedef  unsigned char  U8;


#define  MAXTSKNUM      3

typedef struct {
U32 t0;
U32 wait;
}  aa;

aa  TaskDly[MAXTSKNUM];


void init (void)
{
  U32 i;
  for (i=0;i<MAXTSKNUM;i++)
  {
    TaskDly[i].t0=0;
    TaskDly[i].wait=0;
   }

}


U32 curtsk;
void dly_tsk(U32 k)
  {   
      TaskDly[curtsk].t0=0;
      TaskDly[curtsk].wait=k;
   }
   
 U32 juge(U32 k)
 {
  if(TaskDly[curtsk].wait!=0)
    TaskDly[curtsk].t0++;


  if(TaskDly[curtsk].t0==0&&TaskDly[curtsk].wait==0)
    return 1;
    
  else if(TaskDly[curtsk].t0==TaskDly[curtsk].wait)
	 { TaskDly[curtsk].t0=TaskDly[curtsk].wait=0;
	   return 1;
	 }
	 
  else  return 0;
  }
//S32 (*TaskN[MAXTSKNUM])(S32);

S32  cycletsk(S32)
{
  ////////Add you code here /////////
     printf("I'm cycletsk.  delay 500ms\n");
     dly_tsk(500);
  ///////////////////////////////////

  return 0;
}

S32  taskA(S32)
{
   printf("I'm Task A running!!\n");
   dly_tsk(1000);
   return 0;
}

S32  taskB(S32)
{
   printf("I'm Task B running!!\n");
   dly_tsk(2000);
   return 0;
}


S32 (*TaskN[MAXTSKNUM])(S32)={
      cycletsk,
      taskA,
      taskB
      };

//TaskN[MAXTSKNUM]={
//	taskA,
//};

 U32 SYSCLK=0;
int main(int argc, char* argv[])
{
    int i;

      //TaskN[0](0);
      //TaskN[1](0);
	 init();
	while(1)
	{
	     for(curtsk=0;curtsk<MAXTSKNUM;curtsk++)
	       {

		if(juge(curtsk))
		TaskN[curtsk](0);

	       }
	       delay(1);
	}

	printf("hello!!\n");
	return 0;
}

⌨️ 快捷键说明

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