检测两个按钮同时被按下而不反应第一个按钮被按下

  • 本文关键字:按钮 第一个 两个 c++ robotics
  • 更新时间 :
  • 英文 :


我正在为机器人的控制器逻辑编程。控制器上有2个按钮。2个按钮有3种不同的动作,一个是只按第一个按钮,第二个是只按第二个按钮,第三个是两个按钮都按。

正常情况下,当用户想同时按两个按钮时,他们会一个接一个地按。这会导致执行错误的操作。

下面是部分代码:

while (true)
{
conveyor_mtr.setVelocity(22, pct);
if (Controller1.ButtonL2.pressing() && Controller1.ButtonL1.pressing())
{
conveyor_mtr.spin(fwd); // action 1
}
else if (Controller1.ButtonL2.pressing())
{
backGoalLift.setAngle(3); // action 2
}

else if (Controller1.ButtonL1.pressing())
{
backGoalLift.setAngle(55); // action 3
}
else
{
conveyor_mtr.stop(hold);
}
task::sleep(20); //ms
}

您可以使用一个短定时器,它在每次触发按钮时重新启动。每次计时器到期时,您都会检查当前按下的所有按钮。当然,您需要选择一个合适的计时器持续时间,以便能够"同时"按下两个按钮。同时保持应用程序的响应性。

你可以在循环中使用计数器实现一个简单的计时器。然而,在某种程度上,您会更喜欢基于事件的体系结构。

相关内容

最新更新