void do_main_menu_item(uint8_t menuitem) { switch(menuitem) { case MAINSTART: menu_general(); break; case MAINSTART+1: menu_rc_setup(); break; case MAINSTART+2: menu_stab_control(); break; case MAINSTART+3: menu_al_control(); break; case MAINSTART+4: menu_expo(); break; case MAINSTART+5: menu_battery(); break; case MAINSTART+6: Display_rcinput(); break; case MAINSTART+7: Display_sensors(); break; case MAINSTART+8: Display_balance(); break; case MAINSTART+9: menu_mixer(0); break; case MAINSTART+10: menu_mixer(1); break; case MAINSTART+11: menu_mixer(2); break; case MAINSTART+12: menu_mixer(3); break; case MAINSTART+13: menu_mixer(4); break; case MAINSTART+14: menu_mixer(5); break; case MAINSTART+15: menu_mixer(6); break; case MAINSTART+16: menu_mixer(7); break; default: break; } // Switch menu_beep(1); _delay_ms(200); }
// choose from menu items static void select_menu(void) { u8 menu = LM_MODEL; lcd_menu(menu); main_screen(MS_NAME); // show model number and name while (1) { btnra(); menu_stop(); // Back/End key to end this menu if (btn(BTN_BACK | BTN_END)) break; // Enter key - goto submenu if (btn(BTN_ENTER)) { key_beep(); if (menu == LM_MODEL) { if (btnl(BTN_ENTER)) menu_model(1); else { menu_model(0); break; } } else if (menu == LM_NAME) { if (btnl(BTN_ENTER)) menu_channels_reset(); else menu_name(); } else if (menu == LM_REV) { if (btnl(BTN_ENTER)) menu_key_mapping(); else menu_reverse(); } else if (menu == LM_EPO) { if (btnl(BTN_ENTER)) menu_mix(); else menu_endpoint(); } else if (menu == LM_TRIM) { if (btnl(BTN_ENTER)) menu_subtrim(); else menu_trim(); } else if (menu == LM_DR) { if (btnl(BTN_ENTER)) menu_speed(); else menu_dualrate(); } else if (menu == LM_EXP) { if (btnl(BTN_ENTER)) menu_channel_value(); else menu_expo(); } else { if (btnl(BTN_ENTER)) break; else menu_abs(); } main_screen(MS_NAME); // show model number and name // exit when BACK if (btn(BTN_BACK)) break; } // rotate keys else if (btn(BTN_ROT_ALL)) { if (btn(BTN_ROT_R)) { menu >>= 1; if (!menu) menu = LM_MODEL; } else { menu <<= 1; if (!menu) menu = LM_ABS; } lcd_menu(menu); lcd_update(); } }