这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界» 论坛首页» 嵌入式开发» MCU» 怎么用非阻塞的方式从键盘读字符?

共4条 1/1 1 跳转至

怎么用非阻塞的方式从键盘读字符?

菜鸟
2007-09-15 16:45:56 打赏

想在vxworks设计一个轮询程序,每隔几个毫秒从键盘读入一个字符,如果没有键盘输入,则执行其他代码,工作在非阻塞方式下,请问各位大虾该怎么做??
1。之前采用read函数,但此函数对读键盘是阻塞的,(查了一下资料,用ioctl函数设置非阻塞只对socket有效,对其他i/o无效,不知我的理解对不对?)总是阻塞在read。。
2。本来想尝试用kbhit函数和getchar函数一起使用,但编译器不识别kbhit,感觉vxworks库函数中没有kbhit这个函数,或者是我没找到,请教各位大虾,帮一把,谢谢了!




关键词: 怎么 用非 阻塞 方式 键盘 字符

菜鸟
2007-09-17 08:07:23 打赏
2楼

大虾们都跑哪去拉?自己顶一个


菜鸟
2007-09-18 08:42:28 打赏
3楼

非常感谢yaopg的真诚相助,昨晚尝试用键盘中断的方式进行处理,可是键盘输入总是不能产生中断,直接打印到显示器,不知什么原因,代码如下:
/****************/
main()
{
int i;
intConnect((VOIDFUNCPTR*)INUM_TO_IVEC(1+0x20),(VOIDFUNCPTR)key_ISR,0);
intEnable(1); //键盘中断级别1;
while() //不停循环是为了让程序不死
{
taskDelay(6);
i=i%100;
}
}

void key_ISR()
{
logMsg("This is a ISR!",0,0,0,0,0,0);
}

再次请教yaopg大虾,十分感谢!


菜鸟
2007-09-19 08:39:54 打赏
4楼
再次感谢yaopg大虾的指教,我采用一个任务(级别高一点),然后用read函数,设置opt_raw模式,然后让它阻塞,这样当有键盘字符输入的话,立马相应,然后再用switch语句进行操作,尝试了一下,没有什么问题。
真的很感谢yaopg的不吝指教,谢谢!

共4条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册]