Micromenu-v2 для LCD
- Войдите на сайт для отправки комментариев
Чт, 27/04/2017 - 09:58
Помогите пожалуйста разобраться и подключить данную библиотеку к ардуино. Библиотека лежит тут https://github.com/abcminiuser/micromenu-v2
extern "C"{ #include "MicroMenu.h" } /*** DUMY CODE ***/ enum ButtonValues { BUTTON_NONE, BUTTON_UP, BUTTON_DOWN, BUTTON_LEFT, BUTTON_RIGHT, BUTTON_ENTER, }; enum ButtonValues GetButtonPress(void) { if (Serial.available()) { Serial.println("Kew press"); int val = Serial.read(); if (val == 'w') { Serial.println("w"); return BUTTON_UP; } if (val == 's') { Serial.println("s"); return BUTTON_DOWN; } if (val == 'a') { Serial.println("a"); return BUTTON_LEFT; } if (val == 'd') { Serial.println("d"); return BUTTON_RIGHT; } if (val == 'q') { Serial.println("q"); return BUTTON_ENTER; } } else { return BUTTON_NONE; } }; /*** END DUMY CODE ***/ /** Example menu item specific enter callback function, run when the associated menu item is entered. */ static void Level1Item1_Enter(void) { //puts("ENTER"); Serial.println("ENTER"); } /** Example menu item specific select callback function, run when the associated menu item is selected. */ static void Level1Item1_Select(void) { //puts("SELECT"); Serial.println("SELECT"); } /** Generic function to write the text of a menu. * * \param[in] Text Text of the selected menu to write, in \ref MENU_ITEM_STORAGE memory space */ static void Generic_Write(const char* Text) { if (Text) puts_P(Text); } MENU_ITEM(Menu_1, Menu_2, Menu_3, NULL_MENU, Menu_1_1 , Level1Item1_Select, Level1Item1_Enter, "1"); MENU_ITEM(Menu_2, Menu_3, Menu_1, NULL_MENU, NULL_MENU, NULL , NULL , "2"); MENU_ITEM(Menu_3, Menu_1, Menu_2, NULL_MENU, NULL_MENU, NULL , NULL , "3"); MENU_ITEM(Menu_1_1, Menu_1_2, Menu_1_2, NULL_MENU, NULL_MENU, NULL, NULL, "1.1"); MENU_ITEM(Menu_1_2, Menu_1_1, Menu_1_1, NULL_MENU, NULL_MENU, NULL, NULL, "1.2"); void setup() { Serial.begin(115200); /* Set up the default menu text write callback, and navigate to an absolute menu item entry. */ Menu_SetGenericWriteCallback(Generic_Write); Menu_Navigate(&Menu_1); } void loop() { switch (GetButtonPress()) { case BUTTON_UP: Menu_Navigate(MENU_PREVIOUS); Serial.println("MENU_PREVIOUS"); break; case BUTTON_DOWN: Menu_Navigate(MENU_NEXT); Serial.println("MENU_NEXT"); break; case BUTTON_LEFT: Menu_Navigate(MENU_PARENT); Serial.println("MENU_PARENT"); break; case BUTTON_RIGHT: Menu_Navigate(MENU_CHILD); Serial.println("MENU_CHILD"); break; case BUTTON_ENTER: Menu_EnterCurrentItem(); Serial.println("BUTTON_ENTER"); break; default: break; } }
Почему-то программа дальше строчки Menu_Navigate(&Menu_1); в Setup() не идет. И где функция, которая выводит название пунктов меню на экран? Пока что все это тестирую по Сериал порту...
C V2 у меня не получилось. С первой версией стабильно работает.