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

📄 main.c

📁 ucosIItest1添加任务).rar 初学者交流
💻 C
字号:
#include "def.h"
#include "2410lib.h"
#include "bspinit.h"
#include "includes.h"  
#include "uhal.h" 
#ifdef SEMIHOSTED
#define STACKSIZE       (SEMIHOSTED_STACK_NEEDS+64)
#else
#define	STACKSIZE	4096
#endif

unsigned int Stack1[STACKSIZE];
unsigned int Stack2[STACKSIZE];
unsigned int Stack3[STACKSIZE];


void	user_task(void * pParam);
void 	lcd_task(void *pParam);
void 	yzx_task(void *pParam);




/*void Key_Init()
{
	rGPFCON = 0x8;
	rGPFUP = 0xFFFFFFF;
}*/
void key_led_init(void)
{
	rGPBCON = 0x154000; // set GPB7-10 to output 
	                    //  01    01    01    01    00     00     00     00     00     00    00 
	                    //GPB10  GPB9  GPB8  GPB7  GPB6   GPB5   GPB4   GPB3   GPB2   GPB1  GPB0
	                    
	                    
	rGPBDAT = 0x7ff;    //close all led
	                    //  1      1      1    1      1      1      1      1     1      1     1
	                    // GPB10  GPB9  GPB8  GPB7  GPB6   GPB5   GPB4   GPB3   GPB2   GPB1  GPB0
    rGPBUP  = 0;        //
            
	rGPFDAT = 0xff;     //clear key

}
void keyscan(void)
{
	U8 key;
	key = rGPFDAT;
	switch(key)
	   {
	   	case 0x7f:rGPBDAT=0x3ff;break;  // push key 4 to light led 4
	   	
	   	case 0xf7:rGPBDAT=0x5ff;break;  // push key 3 to light led 3
	   	
	   	case 0xfb:rGPBDAT=0x6ff;break;  // push key 2 to light led 2
	   	
	   	case 0xfd:rGPBDAT=0x77f;break;  // push key 1 to light led 1
	   	
	   	default: break;				
	   	}
	}
void Main(void)
{
 	Bsp_Init();
    //Key_Init();
    InitInfo();
	InitTimers();
	InitInterrupts();
    
    OSInit();
    OSTimeSet(0);
	
	OSTaskCreate(user_task, (void *)0, (void *)&Stack1[STACKSIZE - 1], 5);
    OSTaskCreate(lcd_task, (void *)0, (void *)&Stack2[STACKSIZE - 1], 2);
    OSTaskCreate(yzx_task, (void *)0, (void *)&Stack3[STACKSIZE - 1], 1);  
    
	InstallIrqHandler();
	OpenIRQ();
	
    OSStart();   
	Uart_Printf("never arrive here\n");  
}  


void user_task(void *i)
{
	while(1)
	{

		Uart_Printf("enter user task\n");	
		OSTimeDly(5*OS_TICKS_PER_SEC);
	}
}


void lcd_task(void *i)
{
	while(1)
	{
		Uart_Printf("enter lcd task\n");
		OSTimeDly(7*OS_TICKS_PER_SEC);		
	}
}
void yzx_task(void *i)
{
	Bsp_Init();
	key_led_init();
	while(1)
	{

		//Uart_Printf("yuanzhixiong\n");	
		keyscan();
		OSTimeDly(1*OS_TICKS_PER_SEC);	
	}
}

⌨️ 快捷键说明

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