为lcd Arduino创建2按钮菜单



我想用Arduino创建一个lcd菜单。我想使用2个按钮-一个用于向下滚动,一个用于选择项目。再次按第一个按钮将返回菜单。问题是,如果我在代码中插入这行:while(digitalRead(menu) == LOW);我的程序只等待第一个按钮被按下,所以第二个按钮不起作用。但如果我不插入这条线,两个按钮都工作得很好,但液晶屏上的文字正在闪烁。伪代码是这样的:

如果按下第一个按钮:

->转到第一个菜单项

->如果按下第二个按钮(中断?):

,>

显示内容

如果按下第一个按钮:

->转到第二个菜单项

->如果按下第二个按钮(中断?):

->显示内容

我怎么写我的程序等待中断而不是等待和什么都不做?

void setup
{
 //...
}

如果没有必要,不要改变显示。也许可以这样写:

#define NUM_ITEMS 5
int itemShown = -1;
int item2show = 0;
void loop()
{
  if (digitalRead(button1pin) == LOW)
  {
       item2show++;
       if(item2show>=NUM_ITEMS)
           item2show = 0;
  } else { 
    // if button2 do it
  }
  if (item2show != itemShown) 
  {
     showItem(item2show);
     itemShown = item2Show;
  }
}
}

最新更新