Have you ever developed something with display and noticed that it is very uncomfortable to program a menu? As I developed the Firmware for the new reflow-control-firmware i wrote about 300 lines of switch-case and then decided to do the menu dynamically. And this is what came out, a library für dotmatrix-menus for AVR-Controllers.
Everything is documented in the package.
DOWNLOAD (released under GPLv3)
Here some Video…
LCDmenu Library Version 0.1
An easy way to provide a menu to your project.
by Tobias Schlegel – www.tobias-schlegel.de
READ THIS (THIS _is_ the RTFM-Part… 😉
How to set up your menu.
– Change ui_Max_Menu_Depth to the maximum amount of possible submenu-layers: Mainmenu + 2 submenu + 1 subsubmenu = 3
– define ui_init_LCD_on_init_menu 1 if you wish for lcdmenu to init the lcd when calling init_menu()
– Change the key codes to your liking. Lcdmenu wirks with a 2d + 2 key layout. The codes for these buttons can be changed.
-> If you like define unique IDs for every menu entry (later used for translation)
– For every submenu, create an array (one element per entry) of the type Menu_Entry.
See lcdmenu.c for proper initialization.
– Change init_menu() accordingly. An example is already implemented in lcdmenu.c
Note: MainMenu doesn’t need a parent-pointer.
Care about the execution type (exec = execute CallMe-function / Following = display submenu) of each entry!.
– Add CallMe functions. These are the functions called by lcdmenu when clicking an entry which has an exec-flag and a proper set up
CallMe-pointer. These functions have to be void name(void) !
– Configure your hardware setup according to the file and documentation contained in lcd/doc
4) LAST BUT NOT LEAST!
– You have to link the following files to your project:
– On startup call init_menu();
– Call menu($keycode) to actualize the Menu and displayMenu() to put it on the screen.