2016-07-04 4 views
1

Я хотел бы создать меню для моего lcd с Arduino. Я хочу использовать две кнопки - одну для прокрутки и одну для выбора элементов. Повторное нажатие первой кнопки вернется в меню. Проблема в том, что если я вставляю эту строку в свой код: while(digitalRead(menu) == LOW); моя программа ждет только нажатия первой кнопки, поэтому вторая кнопка не работает. Но если я не вставляю эту строку, обе кнопки работают нормально, но текст на ЖК-дисплее мигает. Псевдокод будет так:Создание 2-кнопочного меню для lcd 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; 
    } 
} 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^