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

📄 main.c

📁 MicroChip等单片机开发的专业RTOS,源代码
💻 C
字号:
#include <jacos.h>
#include <jamain.h>

OST_TASK_T task1,task3,task5;
OST_TASK task2,task4,task6,task7,task8,task9,task10;
OST_TASK task11,task12,task13,task14,task15,task16;
OST_EVENT semaphore1,message1,flags;
OST_EVENT semaphore2,message2;

unsigned int counter;

__task void T1( void )
{
  while(1) {
    counter++;
    OS_Delay(10);
    counter++;
    OS_Post_BSem(&semaphore1);
    OS_Delay(10);
    counter++;
    OS_Post_BSem(&semaphore2);
    OS_Delay(10);
    counter++;
    OS_Post_Msg(&message1,&counter);
    OS_Delay(10);
    counter++;
    OS_Post_Msg(&message2,&counter);
    OS_Delay(10);
    counter++;
    OS_Set_Flag(&flags,0x01);
    OS_Delay(10);
    counter++;
    OS_Set_Flag(&flags,0x02);
  }
}

__task void T2( void )
{
  while(1) {
    counter++;
    OS_Wait_Sem(&semaphore1);
    counter++;
    OS_Cooperate();
  }
}

__task void T3( void )
{
  while(1) {
    counter++;
    OS_Wait_SemT(&semaphore2,14);
    counter++;
    OS_Cooperate();
  }
}

__task void T4( void )
{
  OST_MSG_P msg;
  while(1) {
    counter++;
    OS_Wait_Msg(&message1,msg);
    counter++;
    OS_Cooperate();
  }
}

__task void T5( void )
{
  OST_MSG_P msg;
  while(1) {
    counter++;
    OS_Wait_MsgT(&message2,msg,8);
    counter++;
    OS_Cooperate();
  }
}

__task void T6( void )
{
  while(1) {
    counter++;
    OS_Wait_Flag(&flags,0x03);
    OS_Clear_Flag(&flags,0x03);
    counter++;
    OS_Cooperate();
  }
}

__task void T7( void )
{
  while(1) {
    counter++;
    OS_Cooperate();
  }
}

__task void T8( void )
{
  while(1) {
    counter++;
    OS_Cooperate();
  }
}

__task void T9( void )
{
  while(1) {
    counter++;
    OS_Cooperate();
  }
}

__task void T10( void )
{
  while(1) {
    counter++;
    OS_Cooperate();
  }
}

__task void T11( void )
{
  while(1) {
    counter++;
    OS_Cooperate();
  }
}

__task void T12( void )
{
  while(1) {
    counter++;
    OS_Cooperate();
  }
}

__task void T13( void )
{
  while(1) {
    counter++;
    OS_Cooperate();
  }
}

__task void T14( void )
{
  while(1) {
    counter++;
    OS_Cooperate();
  }
}

__task void T15( void )
{
  while(1) {
    counter++;
    OS_Cooperate();
  }
}

__task void T16( void )
{
  while(1) {
    counter++;
    OS_Cooperate();
  }
}

void main(void)
{
  OS_Init();
  OS_Task_Create(T1, &task1,1);
  OS_Task_Create(T2, &task2,0);
  OS_Task_Create(T3, &task3,0);
  OS_Task_Create(T4, &task4,0);
  OS_Task_Create(T5, &task5,0);
  OS_Task_Create(T6, &task6,0);
  OS_Task_Create(T7, &task7,0);
  OS_Task_Create(T8, &task8,0);
  OS_Task_Create(T9, &task9,0);
  OS_Task_Create(T10,&task10,0);
  OS_Task_Create(T11,&task11,0);
  OS_Task_Create(T12,&task12,0);
  OS_Task_Create(T13,&task13,0);
  OS_Task_Create(T14,&task14,0);
  OS_Task_Create(T15,&task15,0);
  OS_Task_Create(T16,&task16,0);

  OS_Sem_Create(&semaphore1,0);
  OS_Sem_Create(&semaphore2,0);
  OS_Msg_Create(&message1,0);
  OS_Msg_Create(&message2,0);
  OS_Flag_Create(&flags,0);

  PR2 = OS_TMR_TICK;
  INTCON = 0b11000000;
  TMR2IE = 1;
  TMR2IF = 0;
  T2CON  = 0b00000110;
//  __CONFIG(2,WDTDIS);

  while(1) {
    OS_Scheduler();
  }
}

interrupt void intr(void)
{
  /*if ( OS_Is_Timer()){}*/
  OS_Timer_Tick_Set();
  OS_Timer();
}

⌨️ 快捷键说明

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