Raspberry Pi | Linux |检测释放钥匙| C中的WASD键盘控制

时间:2014-06-11 15:41:05

标签: c linux keyboard raspberry-pi release

我想在PI中实现WASD控件。到目前为止,这也很有效。

#include "bcm2835.h"
#define SLEEPTIME   500
#define GPIO17      RPI_GPIO_P1_11
...
while(running) {    

  // get key
  printf("wait for key:");
  system("/bin/stty raw");
  key = getchar();
  system("/bin/stty cooked");
  printf(" key %i pressed!\n", key);

  // key-logic
  switch(key) {
    case 'w': 
      printf("set GPIO 17 HIGH"); 
      bcm2835_gpio_write(GPIO17, HIGH);
      bcm2835_delay(SLEEPTIME);  // <-- wanna remove this!
    break;
  }

  // reset GPIO
  bcm2835_gpio_write(GPIO17, LOW);
  printf("\n");
}
...

在我目前的实施中,我遇到以下问题:

如果我按下W键以便检测它并设置GPIO。短暂延迟后,GPIO复位并等待下一个键。

但是,我希望只要按下W按钮就会设置GPIO。你有关于如何实现这一目标的暗示吗?是否可以选择检测密钥的发布?

我已经考虑过Interruputs但没找到合适的解决方案。 谢谢!


EDIT1:

我找到了一个效果很好的解决方案。 非常感谢Loki Software,Inc。 与John R. Hall合作。

您可以在此处获取: keycodes.c

以及详细说明: Programming Linux Games


EDIT2:

我不得不撤回我的陈述。 该程序在debian下在笔记本上工作。在带有USB键盘的Rasbian上,它无法最佳地工作。 虽然它没有错误地启动但是没有响应密钥的释放。

有人知道任何建议吗?

0 个答案:

没有答案