test.c

来自「ucos在ARM7上的移植」· C语言 代码 · 共 88 行

C
88
字号
#include "includes.h"


#define  TaskStkSize  100
void port_init(void);           //端口初始化
void vic_init(void);            //VIC初始化
void timer0_init(void);         //使能定时器0
//__irq void timer0_isr(void);    //定时器0中断服务程序

void Task1(void  * pdata);
void Task2(void  * pdata);


OS_STK  Task1Stack[TaskStkSize];
OS_STK  Task2Stack[TaskStkSize];


int main(void)
{
	port_init();
	vic_init();
	OSInit();
	OSTaskCreate(Task1, (void *)0, &Task1Stack[99],3);
	OSTaskCreate(Task2, (void *)0, &Task2Stack[99],2);
	OSStart();
}


void port_init(void)
{
	  PINSEL0 =0x05;            //使能uart0   p0.0-p0.1
	  PINSEL1 =0x00;            //其它的管脚作为通用IO
	  PINSEL2 =0x00;
	  IODIR1  =0xff;            //p1.0-p1.15 配置为输出端口
}


void vic_init(void)
{
	VICIntEnable   =0x10;       //使能timer0中断
	VICVectCntl0   =0x24;       //使能timer0中断为向量中断0
	//VICVectAddr0   =(unsigned long)timer0_isr;    //向量中断0地址 
}


void timer0_init(void)
{
	T0MR0 =582912;              //匹配寄存器  
	T0TCR =0x01;                //使能timer0
	T0MCR =0x03;                //MR0 与TC 值的匹配将产生中断并使TC复位
}


//__irq void timer0_isr(void)
//{
//	T0IR =1;                 //清零中断标志位
//   	VICVectAddr = 0;         //中断应答
//	OSTimeTick();
//}


void Task1(void  * pdata)
{
	//int i =1;
	pdata = pdata;
	timer0_init();
	
	while(1)
	{
		 //i =i;
		 IOSET1 =0xff;
		  OSTimeDly(3);
		 //OSTaskSuspend(2);
	}
}

void Task2(void  * pdata)
{
	pdata = pdata;

	while(1)
	{
		   IOCLR1 =0xff;
		   OSTimeDly(6);
		   //OSTaskResume(2);
	}
}

⌨️ 快捷键说明

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