key_scan.c

来自「使用CYAN单片机的ECOG1开发板连接SIM300C的GSM模块开发的短信收发」· C语言 代码 · 共 50 行

C
50
字号
/******************************************************************************
MODE:		AML--#GPS+accelerator+compass
MCU:		Cyan eCOG1k
COMPILER:	CyanIDE v1.41
FILE NAME:	key_scan C source code files
******************************************************************************/
#define key_code

/******************************************************************************
Project level include files.
******************************************************************************/
#include "key_scan.h"

/******************************************************************************
Declaration of static functions.
******************************************************************************/
extern void delay_ms(unsigned int ms_reg);
unsigned char key_scan(void);

/******************************************************************************
key scan function.
******************************************************************************/
unsigned char key_scan(void)
{
	unsigned char key_value = 0,temp;
	set_pa_input;
	temp = rg.io.pa_in;
	temp &= 0x0f;
	if(temp == 0x0f) goto key_scan_end;
	delay_ms(10);
	
	key_value = rg.io.pa_in;
	key_value &= 0x0f;
	if(key_value != temp)
	{
		key_value = 0;
		goto key_scan_end;
	}
	
	key_value = ~key_value;
	key_value &= 0x0f;
	
key_scan_end :
	return(key_value);
}
/******************************************************************************
key scan end.
******************************************************************************/

⌨️ 快捷键说明

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