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

📄 test.c

📁 ucos在ARM7上的移植
💻 C
字号:
#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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -