2016-07-04 280 views
1

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

如果先按下按钮:(?interrput)

- - >去第一个菜单项

>如果第二个按钮按下:

- - >显示内容

如果先按下按钮:

- >去第二个菜单项

- >如果第二次按下的按钮(打断):

--->显示内容

我怎么能写我的程序等待中断,而不是等待和无所作为?

回答

0
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; 
    } 
} 
}