📄 joystick.c
字号:
/**************************************JOYSTICK.C*******************************************
文件名 : JOYSTICK.C
目标 : cc2430
创建日期: 2008/05/2
修改日期:
版本 : version 1.0
作者 : 刘旭
功能描述: 提供键盘与用户应用程序的接口,此文件提供了操作键盘的接口函数.
***************************************头文件************************************************/
#include"JOYSTICK.H"
//**********************************函数声明******************************************
void InitKey(void); //初始化键盘
INT8U ScanKey(void); //键盘扫描函数
//**********************************键盘扫描******************************************
// 函数: INT8U ScanKey(void)
// 描述: 键盘扫描
// 参数: 无
// 说明: 对键盘扫描一次,取得返回值
// 例如: ScanKey(void)
//***************************************************************************************
void InitKey(void)
{
IO_DIR_PORT_PIN(0, 4, IO_IN); //设置P0_4为输入
IO_DIR_PORT_PIN(0, 5, IO_IN); //设置P0_5为输入
}
//**********************************键盘扫描******************************************
// 函数: INT8U ScanKey(void)
// 描述: 键盘扫描
// 参数: 无
// 说明: 对键盘扫描一次,取得返回值
// 例如: ScanKey(void)
//***************************************************************************************
INT8U ScanKey(void)
{
INT8U adcValue, i,direction[2];
for(i = 0; i < 2; i++)
{
if(KEY_OK == 0) {direction[i]=K_OK;continue; } //确认键
if(KEY_CANCEL == 0) {direction[i]=K_CANCEL;continue; } //取消键
adcValue=HalAdcSampleSingle(ADC_REF_AVDD, ADC_8_BIT, ADC_AIN6); //AD采样方向断口数据
if(adcValue < 105&&adcValue>93) {direction[i] = K_UP; continue;} //下移键
if(adcValue < 35 &&adcValue>29) {direction[i] = K_LEFT; continue;} //左移键
if(adcValue < 70 &&adcValue>60) {direction[i] = K_DOWN; continue;} //上移键
if(adcValue < 5) {direction[i] = K_RIGHT;continue;} //右移键
else {return K_NO; } //空键
}
if(direction[0] == direction[1]) //相当于延时去抖
{
while((INT8U)HalAdcSampleSingle(ADC_REF_AVDD, ADC_8_BIT, ADC_AIN6)<110); //等待按键释放
return direction[0];
}
else
{
return K_NO;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -