|
在新版的fx-9860G SDK中,IsKeyDown函数已被废弃。此函数在USB Power Graphic 2
版本的fx-9860GII (SD)、Graph75(95)以及fx-9860G AU Plus中不再被支持。
请参考如下的范例,使用GetKey或Bkey_GetKeyWait(新函数)取代IsKeyDown。
第一种情况:轮询按键状态直到按键被按下:- while(1){
- if(IsKeyDown(KEY_CHAR(0)) break;
- }
复制代码 使用GetKey替代IsKeyDown:- unsigned int key;
- while(1){
- GeyKey(&key);
- if(KEY_CHAR_0 == key) break;
- }
复制代码 第二种情况:检查某个按键是否按下(可选延时/超时)- int flag0 = 0;
- if (IsKeyDown(KEY_CHAR_0))
- flag0 = 1;
复制代码 使用Bkey_GetKeyWait代替IsKeyDown:- int kcode1 = 0, kcode2 = 0, flag0 = 0;
- short unused = 0;
- if (Bkey_GetKeyWait(&kcode1, &kcode2, KEYWAIT_HALTOFF_TIMEROFF, 0,
- 1, &unused)==KEYREP_KEYEVENT) {
- if ((kcode1==7)&&(kcode2==2)) flag0 = 1;
- }
复制代码 Bkey_GetKeyWait函数
Bkey_GetKeyWait函数进行等待按键操作,返回值为按下的键。- int Bkey_GetKeyWait(
- int *code1; // 按键代码第一部分(Code1)
- int *code2; // 按键代码第二部分(Code2)
- int wait_type; // 等待类型
- int time; // 超时时限
- int menu; // 菜单键操作
- short *unused; // 未使用
- );
复制代码
- Code1、Code2按键代码对应表
- wait_type等待类型
等待类型
| 描述
| KEYWAIT_HALTON_TIMEROFF
| 如果按键缓冲里没有字符,此函数将一直等到一个字符出现为之,然后立刻返回。
| KEYWAIT_HALTOFF_TIMEROFF
| 如果按键缓冲里没有字符,此函数立刻返回。
| KEYWAIT_HALTON_TIMERON
| 如果在指定的超时时限(time)内没有按键,此函数超时。
|
- 超时时限time
此参数代表超时的时间限制,单位为秒。仅当第一个参数为KEYWAIT_HALTON_TIMERON时才有作用。 - 菜单操作menu
若menu的值为0,则当菜单键按下时计算器返回主菜单。
若menu的值为1,则菜单键会被拦截,函数返回对应的按键代码。 - unused
此参数未被使用。 - 返回值
此函数返回如下的值。下列定义已在keybios.h中声明。
KEYREP_NOEVENT | 因为按键缓冲中无字符,函数立即返回。 | KEYREP_KEYEVENT | 将会设置按键代码。 | KEYREP_TIMEREVENT | 因为超过超时时限,函数返回。 |
|
|