event.c

来自「PIC串口程序  可以帮助你编写串口程序  里面还有我自己做的协议 很方便」· C语言 代码 · 共 54 行

C
54
字号
#include "..\includes\includes.h"
/*
任务表:
1,按键扫描
2,等待定时中断
3,按键查询
4,用户操作超时事件	
*/


 typedef struct
{
  uint32 tWait;	//允许等待时间
  INT8U event[1]; 
  uint32 wsTime;	//记录开始等待事件发生的时间

}	STRUCT_EVENT;

 STRUCT_EVENT EVENT;


INT8U checkEventWaitTimeOut(void)
{ uint32 ntime;
	if (EVENT.tWait==0)
		return(FALSE);
	else 
	{	ntime=loadSystemTime(TYPE_TIME_DHMS);
		if (ntime-EVENT.wsTime>=EVENT.tWait)
			return(TRUE);
		else return(FALSE);	
	}	
}

INT8U EventBurstWait( INT16U tWait, INT8U wEvent)
{	
  	INT8U event=EVENT_NULL;
	EVENT.tWait=tWait;
	EVENT.wsTime=loadSystemTime(TYPE_TIME_DHMS);
	while(1)
	{	OS_SCHEDULE();
		if (checkEventWaitTimeOut()==TRUE)
		{	event=EVENT_TIMEOUT;
			break;}
		event =checkKeyEvent();
		if (event!=EVENT_NULL)
		{	if (wEvent!=EVENT_NULL)
			{	if (event==wEvent)
					break;}
			else break;	
		}
	}
	return(event);			
}

⌨️ 快捷键说明

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