keypro.c

来自「一个操作系统源代码 用于嵌入式设备 在Vc++环境下仿真 成功移植到多款处理器上」· C语言 代码 · 共 59 行

C
59
字号
/*******************************************************************************
 *
 *      file name : key.c 
 *
 *	Copyright (C) SEIKO EPSON CORP. 1997-2001
 *
 *	This file for key process.
 *
 *              Revision History
 *
 *              2001/07/18  Leon Zhong Start
 *
 ********************************************************************************/
#include <kernel\ros33\ros33.h>
#include <sys\key.h>
#include <sys\systsk.h>

extern unsigned char CurrentKey[];

/******************************************************
* FUNCTION  StoreKeyBuf           
* Description:   depend on keybuf to decide wheter
*                to store a press key
* return :       TRUE:  added to buf sucessful
*                FALSE: not added to buf
*******************************************************/
BOOL StoreKeyBuf(unsigned char key)
{
	int i;
	int isEmpty;
	BYTE isOnly;
	
	isEmpty = 0;
	isOnly = 0;
	for (i = 0; i <MAX_KEYBUF/2; i++)
	{	
		if (CurrentKey[i*2] == key){
			act_cyc(KEYSCANTIMER,TCY_ON);
			return FALSE;
		}
		else
			if (CurrentKey[i*2] == 0xff)
				isEmpty = i*2+1;
			else
				isOnly++;
	}
	if (isEmpty){
		CurrentKey[isEmpty - 1] = key;
		CurrentKey[isEmpty] = 1;	
		if (isOnly == 0)
			act_cyc(KEYSCANTIMER,(TCY_ON|TCY_INI));
		else
			act_cyc(KEYSCANTIMER,TCY_ON);
		return TRUE;
	}
	act_cyc(KEYSCANTIMER,TCY_ON);	
	return FALSE;
}

⌨️ 快捷键说明

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