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

📄 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

OS_EVENT *recvSem;//(1)声明事件控制块

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

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




/*void Key_Init()
{
	rGPFCON = 0x8;
	rGPFUP = 0xFFFFFFF;
}*/

void Main(void)
{
 	
 	Bsp_Init();
    //Key_Init();
    InitInfo();
	InitTimers();
	InitInterrupts();
	
    
    OSInit();
    OSTimeSet(0);
    
    recvSem=OSSemCreate(1);//(2)创建信号量
	
	OSTaskCreate(user_task, (void *)0, (void *)&Stack1[STACKSIZE - 1], 5);
    OSTaskCreate(lcd_task, (void *)0, (void *)&Stack2[STACKSIZE - 1], 2);  
    
	InstallIrqHandler();
	OpenIRQ();
	
    OSStart();   
	Uart_Printf("never arrive here\n");  
}  


void user_task(void *i)
{
	while(1)
	{
		if(Uart_GetKey()=='a')//(3)任务1发送信号量
			OSSemPost(recvSem);
		Uart_Printf("enter user task\n");	
		OSTimeDly(1*OS_TICKS_PER_SEC);
	}
}


void lcd_task(void *i)
{
	U8 err;
	while(1)
	{
		OSSemPend(recvSem,0,&err);//(4)任务2收信号量
		Uart_Printf("yzx task\n");
		OSTimeDly(2*OS_TICKS_PER_SEC);		
	}
}

⌨️ 快捷键说明

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