- #include “key.h”
- #define KeyBufSize 16 //定义按键缓冲队列字节数
- unsigned char KeyBuf[ KeyBufSize ]; //定义一个无符号字符数组作为按键缓冲队列。该队列为先进
- //先出,循环存取,下标从0到 KeyBufSize-1
- unsigned char KeyBufWp=0; //作为数组下标变量,记录存入位置
- unsigned char KeyBufRp=0; //作为数组下标变量,记录读出位置
- //如果存入位置与读出位置相同,则表明队列中无按键数据
- unsigned char keyHit( void )
- { if( KeyBufWp == KeyBufRp ) return( 0 ); else return( 1 ); }
- unsigned char keyGet( void )
- { unsigned char retVal; //暂存读出键值
- while( keyHit()==0 ); //等待按键,因为函数keyHit()的返回值为 0 表示无按键
- retVal = KeyBuf[ KeyBufRp ]; //从数组中读出键值
- if( ++KeyBufRp >= KeyBufSize ) KeyBufRp=0; //读位置加1,超出队列则循环回初始位置
- return( retVal );
- }
- void keyPut( unsigned char ucKeyVal )
- { KeyBuf[ KeyBufWp ] = ucKeyVal; //键值存入数组
- if( ++KeyBufWp >= KeyBufSize ) KeyBufWp=0; //存入位置加1,超出队列则循环回初始位置
这个函数里
- unsigned char KeyBufWp=0; //作为数组下标变量,记录存入位置
- unsigned char KeyBufRp=0; //作为数组下标变量,记录读出位置
- //如果存入位置与读出位置相同,则表明队列中无按键数据
这个怎么解释啊 为 什么说“如果存入位置与读出位置相同,则表明队列中无按键数据
”小弟看不明白 各位 大侠帮忙解释一下!!!!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>