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

📄 keyboard.h

📁 本人写的ATMEL 128 UC/OSII移植程序
💻 H
字号:

//keyboard: ASC15 set or release

#define  KEY_BUF_SIZE               5      /* Size of the KEYBOARD buffer*/
#define KEY_SCAN_ENABLE() PORTD &=~(1<<PD7)//0b01111111
#define KEY_SCAN_DISABLE() PORTD |= (1<<PD7)//0b10000000

#define KEY_SCAN_IN (*(volatile unsigned char *)0xfffc)
#define KEY_SCAN_OUT (*(volatile unsigned char *)0xfffe)

#define KEY_STATE_UP                 1      /* Key scanning states used in KeyScan()                   */
#define KEY_STATE_DEBOUNCE           2
#define KEY_STATE_RPT_START_DLY      3
#define KEY_STATE_RPT_DLY            4
#define KEY_SCAN_TASK_DLY          50      /* Number of milliseconds between keyboard scans           */
#define KEY_RPT_DLY                 2      /* Number of scan times before auto repeat executes again  */
#define KEY_RPT_START_DLY          10      /* Number of scan times before auto repeat function engages*/


extern OS_EVENT *KeySemPtr;
extern uchar keypressed;
extern INT8U KeyBuf[KEY_BUF_SIZE];     /* Keyboard buffer                                         */
extern INT8U KeyBufInIx;               /* Index into key buf where next scan code will be inserted*/
extern INT8U KeyBufOutIx;              /* Index into key buf where next scan code will be removed */
extern INT8U KeyNRead;                 /* Number of keys read from the keyboard                   */
extern INT16U KeyDownTmr;               /* Counts how long key has been pressed  */
extern INT8U  KeyRptStartDlyCtr;        /* Number of scan times before auto repeat is started */
extern INT8U  KeyRptDlyCtr;             /* Number of scan times before auto repeat executes again  */
extern INT8U  KeyScanState;             /* Current state of key scanning function */

/*
**************************************************************************************************
*  Function1 key: up; down; right; left; ok; F1; F2 .
**************************************************************************************************
*/

#define keyup  2
#define keydown 8
#define keyleft 4
#define keyright 6
#define keyok 5
#define keyF1 7
#define keyF2 9
#define keyCancel 3
#define keyReturn 1
#

/*
*************************************************************************************************
*
*  Fucntion2 key: plus; chinese mode
*
*************************************************************************************************
*/

#define keyPlus 10
#define keyMiddle 18

/*
*************************************************************************************************
*
*  Number key: number 0~9
*
*************************************************************************************************
*/

#define KeyNum0 14
#define KeyNum1 11
#define KeyNum2 12
#define KeyNum3 13
#define KeyNum4 15
#define KeyNum5 16
#define KeyNum6 17
#define KeyNum7 19
#define KeyNum8 20
#define KeyNum9 21

/*
*************************************************************************************************
*
*  Key board scan Function
*
*************************************************************************************************
*/

void KeyBoard_Init(void);
INT8U  KeyDecode (void);
void  KeyBufIn (INT8U code);
INT8U  KeyGetKey (INT16U to);
uchar KeyHit(void);
BOOLEAN  KeyIsKeyDown (void);

⌨️ 快捷键说明

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