http://avrproject.ru/publ/menu_on_a_mic ... r/1-1-0-33Мне вот это понравилось меню. Простое и удобное

За 5 минут переделал под cvavr (да там и делать-то нечего)

Под "меню" отвел int.
Соответственно
switch(menu)
case 0x1: break;// главный экран
case 0x10: break; // Пункт 1.1 (главный экран << 1) (кнопка "ввод")
case 0x11: break; // Пункт 1.2 (пункт1.1++) (кнопка "нехт")
case 0x12: break; // Пункт 1.3 (пункт1.2++) (кнопка "нехт")
case 0x120: break; // Пункт 1.3.1 (пункт1.3 << 1) (кнопка "ввод")