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

📄 joystick.c

📁 cc2430的好串口
💻 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 + -