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

📄 main.c

📁 这是一个用于在S3C44B0开发板(网上公版)
💻 C
字号:
#include "option.h"
#include "def.h"
#include "44b.h"
#include "44blib.h"
#include "includes.h"


#define TASK_STK_SIZE 512
#define N_TASKS       4  
OS_STK  TaskStk[N_TASKS][TASK_STK_SIZE];
OS_STK  TaskStartStk[TASK_STK_SIZE];
char    TaskData[N_TASKS];
void __irq time0(void);
void TaskStart(void *pdata);
void Task1(void *pdata);
void Task2(void *pdata);
void time0init(void)
{   rINTMSK=BIT_GLOBAL;
    rINTCON=0x01;
  
     rI_ISPC=0x3ffff;
    pISR_TIMER0=(unsigned)OSTickISR;
      rINTMSK =~(BIT_TIMER0 | BIT_GLOBAL);
     rTCON=0x0;
    rTCFG0     = 0x000000ff;                    // set Timer 0 prescaler 255

    //   rTCFG0  |= 0x00000ff;
   // rTCFG1     &= 0xfffffff0;                    // set Timer 0 MUX 1/8
    rTCFG1  = 0x00000002;                    // set Timer 0 MUX 1/8

    rTCNTB0     = 0x1000;               //if set inverter off, when TCNT2<=TCMP2, TOUT is high, TCNT2>TCMP2, TOUT is low
   rTCMPB0=1000; 
    //rTCMPB3  = (rTCNTB3*(100-HiRatio))/100;    //if set inverter on,  when TCNT2<=TCMP2, TOUT is low,  TCNT2>TCMP2, TOUT is high
    rTCON=0x222220a;	//update T5/T4/T3/T2/T1/T0
    rTCON=0x5999909;	//T5/T4/T3/T2/T1=auto reload,T0=one shot,all_start

   
    
}

void TaskStart(void *pdata)
{// int Task_1=1;
 OS_CPU_SR  cpu_sr;
  time0init();
 // OSTaskCreate(Task1,(void*)&Task_1,&TaskStk[1][TASK_STK_SIZE-1],1);
 
  while(1)
  { OS_ENTER_CRITICAL();
   Uart_Printf("heaven can wait!\n");
   OS_EXIT_CRITICAL();
  OSTimeDly(14);
  }
}

void Task1(void *pdata)
{ OS_CPU_SR  cpu_sr;
	while(1)
	{OS_ENTER_CRITICAL();
	 Uart_Printf("heaven ,i love you!\n");
	 Uart_Printf("heaven ,i love you!\n");
	 OS_EXIT_CRITICAL();
	  OSTimeDly(4);
	  }
}	  

void Task2(void *pdata)
{ OS_CPU_SR  cpu_sr;
	while(1)
	{OS_ENTER_CRITICAL();
	  Uart_Printf("April ,i love you!\n");
	  OS_ENTER_CRITICAL();
	  OSTimeDly(20);
	  }
}	  

void CLEARBIT(void)
{ rI_ISPC=BIT_TIMER0;
 // Uart_Printf("APRIL\n");
}

void __irq time0(void)
{// __asm
  //{ldr r0,[r0]
 // }
 // rI_ISPC=BIT_TIMER0;
//  Uart_Printf("TT");
 // OSIntEnter();
 OSTickISR();
 // OSIntExit();
 // OS_Sched();
}  
void Main(void)
{int Task_1=1;
  int Task_2=2;
 Port_Init();
 Uart_Init(0,115200);
 Uart_Printf("lin ,i love you!\n");
// time0init();
 OSInit();
 OSTaskCreate(TaskStart,(void*)0,&TaskStartStk[TASK_STK_SIZE-1],0);
  OSTaskCreate(Task2,(void*)&Task_2,&TaskStk[2][TASK_STK_SIZE-1],2);
  OSTaskCreate(Task1,(void*)&Task_1,&TaskStk[1][TASK_STK_SIZE-1],1);
 OSStart();
// while(1);
// {Uart_Printf("test");
//  }
 }

⌨️ 快捷键说明

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