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

📄 key.c

📁 此代码应用与f2812的通讯程序!!方便用户编程!
💻 C
字号:
#include "Device.h"

#define KEYVAL  (*( volatile Uint16 *)0x2c00);
#define  UP_KEY    16
#define  DOWN_KEY  32
#define  LEFT_KEY  4
#define  RIGHT_KEY 64
#define  ESC_KEY   8
#define  ENTER_KEY 128
#define  NOKEY     0
Uint16 xCount=0x0;
int    yCount;
Uint16 LastKeyVal;
void ScanKey()
{
   Uint16 tmp,i;
   LastKeyVal=KEYVAL;
   tmp=KEYVAL; 
   tmp&=0xfc;
   if(tmp!=stKey.keyold)
   {  for(i=4;i<=128;i<<=1)
      {  if(!(tmp&i)){ stKey.keydown =i; break; } 
      }
      stKey.keyold=tmp;
   }
}

void HandleKey()
{   
    
    if(stKey.keydown==NOKEY)return ;
    switch(stKey.keydown)
    {   case ENTER_KEY:  
             if(pMenuItem->pEnterItem != NULL)
             {  pMenuItem=pMenuItem->pEnterItem ;
                DispMenu(pMenuItem->ItemPage); DispData();
             }
             break;
        case ESC_KEY:
             if(pMenuItem->pCancelItem != NULL)
             {  pMenuItem=pMenuItem->pCancelItem ;
                DispMenu(pMenuItem->ItemPage); DispData();
             }
             break;
        case UP_KEY:
             if(pMenuItem->pUpItem != NULL)
             {  pMenuItem=pMenuItem->pUpItem;
                DispMenu(pMenuItem->ItemPage); DispData();
             }
             break;
        case DOWN_KEY:
             if(pMenuItem->pDownItem != NULL)
             {  pMenuItem=pMenuItem->pDownItem ;
                DispMenu(pMenuItem->ItemPage); DispData();
             }
             break;
        case LEFT_KEY:
             if( xCount<=0)
                 xCount=3;
             else
                 xCount--;
              
             if(pMenuItem->pLeftItem != NULL)
             {  pMenuItem=pMenuItem->pLeftItem;
                DispMenu(pMenuItem->ItemPage); DispData();
             }
             else
                xCount=0;
             break;
        case RIGHT_KEY:
             if( xCount>=3)
                 xCount=0;
             else
                 xCount++;
              
             if(pMenuItem->pRightItem != NULL)
             {  pMenuItem=pMenuItem->pRightItem;
                DispMenu(pMenuItem->ItemPage); DispData();
             }
             else
                 xCount=0;
             break;
             
        default: 
             break;             
    }
    
    stKey.keydown = NOKEY ;
}

⌨️ 快捷键说明

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