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

📄 main.c

📁 5956470AT91RM9200-uCOS.rar
💻 C
字号:
//*----------------------------------------------------------------------------
//*         ATMEL Microcontroller Software Support  -  ROUSSET  -
//*----------------------------------------------------------------------------
//* The software is delivered "AS IS" without warranty or condition of any
//* kind, either express, implied or statutory. This includes without
//* limitation any warranty or condition with respect to merchantability or
#include "Includes/includes.h"
#include "Includes/AT91RM9200.h"
#include "Includes/lib_AT91RM9200.h"
#include "Interrupt/timer.h"
//#include "lib_arm920t.h"
// AT91F_DBGU_Printk is defined in init.c
extern void AT91F_DBGU_Printk(char *);
extern void uprintf(char *fmt,...);

OS_EVENT *SemNewRx;

#define  TASK_STK_SIZE                  128
OS_STK        TaskStartStk[TASK_STK_SIZE];
OS_STK        Task1Stk[TASK_STK_SIZE];
OS_STK        Task2Stk[TASK_STK_SIZE];
OS_STK        Task3Stk[TASK_STK_SIZE];
OS_STK        Task4Stk[TASK_STK_SIZE];
OS_STK        Task5Stk[TASK_STK_SIZE];

#define TaskStartPrio 2
#define Task1Prio 3
#define Task2Prio 4
#define Task3Prio 7
#define Task4Prio 8
#define Task5Prio 9

void  TaskStart(void *data);
void  Task1(void *data);
void  Task2(void *data);
void  Task3(void *data);
void  Task4(void *data);
void  Task5(void *data);


int main (void)
{
	AT91F_DBGU_Printk("\n\n\r-I- ======================================\n\r");
	AT91F_DBGU_Printk("-I- AT91RM9200 UART example\n\r");
	AT91F_DBGU_Printk("-I- ======================================\n\r");
//	Timer0_Init ();
    OSInit();
//    SemNewRx = OSSemCreate(1);     
	OSTimeSet(0);
    OSTaskCreate(TaskStart, (void *)0, &TaskStartStk[TASK_STK_SIZE - 1], TaskStartPrio);
    OSStart();
	while(1);
    return 0;
}

void  TaskStart(void *pdata)
{
    pdata = pdata;
                                                      // 避免编译警告 /
    Timer0_Init ();
    
    OSTaskCreate(Task1, (void *)0, &Task1Stk[TASK_STK_SIZE - 1], Task1Prio); // 创建任务     /
	OSTaskCreate(Task2, (void *)0, &Task2Stk[TASK_STK_SIZE - 1], Task2Prio); // 创建任务     /
	OSTaskCreate(Task3, (void *)0, &Task3Stk[TASK_STK_SIZE - 1], Task3Prio); // 创建任务     /
	OSTaskCreate(Task4, (void *)0, &Task4Stk[TASK_STK_SIZE - 1], Task4Prio); // 创建任务     /
	OSTaskCreate(Task5, (void *)0, &Task5Stk[TASK_STK_SIZE - 1], Task5Prio);

    for (;;)
    {
//        OSTaskSuspend(OS_PRIO_SELF);
		OSSchedLock() ;	
		AT91F_DBGU_Printk("-I- --------00000000000\n\r");
		OSSchedUnlock() ;
      OSTimeDly(20);
//	AT91F_DBGU_Printk("-I- --------------------------------------\n\r");

    }
}

void  Task1(void *pdata)
{
    pdata = pdata;                                      // 避免编译警告 /
//	Timer1_Init ();
    for (;;)
    {
    	OSSchedLock() ;		//停止任务调度
//    	OSTimeDly(1);
		AT91F_DBGU_Printk("-I- -------11111111111----------\n\r");
//		OSTimeDly(2);
		OSSchedUnlock() ;
		OSTimeDly(20);
//      OSTimeDly(OS_TICKS_PER_SEC );               // 延时20毫秒 /
    }
}
void  Task2(void *pdata)
{
    pdata = pdata;                                      // 避免编译警告 /

    for (;;)
    {
    	OSSchedLock() ;		//停止任务调度
//    	OSTimeDly(1);
		AT91F_DBGU_Printk("-I- --------222222222222----------\n\r");
//		OSTimeDly(2);
		OSSchedUnlock() ;
		OSTimeDly(20);
//      OSTimeDly(OS_TICKS_PER_SEC/18 );               // 延时20毫秒 /
    }
}
void  Task3(void *pdata)
{
    pdata = pdata;                                      // 避免编译警告 /

    for (;;)
    {
    	OSSchedLock() ;		//停止任务调度
//    	OSTimeDly(1);
		uprintf("-I- --------33333333333----------\n\r");
//		OSTimeDly(2);
		OSSchedUnlock() ;
		OSTimeDly(20);
//      OSTimeDly(OS_TICKS_PER_SEC/9 );               // 延时20毫秒 /
    }
}
void  Task4(void *pdata)
{
    pdata = pdata;                                      // 避免编译警告 /

    for (;;)
    {
    	OSSchedLock() ;		//停止任务调度
//    	OSTimeDly(1);
		AT91F_DBGU_Printk("-I- --------44444444444----------\n\r");
//		OSTimeDly(2);
		OSSchedUnlock() ;
		OSTimeDly(20);
//      OSTimeDly(OS_TICKS_PER_SEC );               // 延时20毫秒 /
    }
}
void  Task5(void *pdata)
{
    pdata = pdata;                                      // 避免编译警告 /

    for (;;)
    {
    	OSSchedLock() ;		//停止任务调度
//    	OSTimeDly(1);
		AT91F_DBGU_Printk("-I- --------55555555555----------\n\r");
//		OSTimeDly(2);
		OSSchedUnlock() ;
		OSTimeDly(20);
//      OSTimeDly(OS_TICKS_PER_SEC/3 );               // 延时20毫秒 /
    }
}

⌨️ 快捷键说明

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