这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » 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 跳转至

回复

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