为 lcd Arduino 创建 2 个按钮菜单
Creating 2 button menu for lcd Arduino
我想用 Arduino 为我的液晶显示器创建一个菜单。我想使用 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;
}
}
}
我想用 Arduino 为我的液晶显示器创建一个菜单。我想使用 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;
}
}
}