Код:
void InitDisp(void);
void ShowDisp(void);
void ShowMainDisp(void );
void ShowStdMenuDisp(void );
void ShowSelectModelDisp (void );
void ShowCopyModelDisp (void );
.......................................................................
#define MainDisp 0
#define MainMenuDisp 1
#define ModelMenuDisp 2
#define SelectModelDisp 3
#define SaveModelDisp 4
#define ModelNameDisp 5
#define SetTransDisp 6
#define ControlsMenuDisp 7
#define MixerDisp 8
#define CurveDisp 9
..............................................................................
flash unsigned char *MenuTxt[] =
{
"MENU\0",
"MAIN\0",
"Model\0",
"Select\0",
"Save\0",
"Name\0",
"Trns.\0",
"Controls\0",
"Mixers\0",
"Curve\0",
.....................................................
flash unsigned char MenuTable[MenuMaxItems][MenuMaxStruct] =
{
//-----------NameMenuDisp-----------|---- ExitDisp-----------|-ExitItem---|--Items--|-IsEndDisp --|----------------- ItemsDisp=MenuMaxDeep-10-------------------------------|
{ MainDisp, _NONE_ , 0, 0 , 1, _NONE_,_NONE_ ,_NONE_ ,_NONE_ ,_NONE_},
{ MainMenuDisp, MainDisp, 0, 4, 0, ModelMenuDisp,ControlsMenuDisp,OptionMenuDisp, SaveMenuDisp,_NONE_ },
{ ModelMenuDisp, MainMenuDisp, 0, 4, 0, SelectModelDisp,SaveModelDisp, ModelNameDisp,SetTransDisp ,_NONE_},
{ SelectModelDisp, ModelMenuDisp, 0, MAX_MODELS, 1, _NONE_ ,_NONE_ ,_NONE_ ,_NONE_ ,_NONE_},
{ SaveModelDisp, ModelMenuDisp, 1, MAX_MODELS, 1, _NONE_ ,_NONE_ ,_NONE_ ,_NONE_ ,_NONE_},
{ ModelNameDisp, ModelMenuDisp, 2, MAX_MODELS_NAME+1, 1, _NONE_ ,_NONE_ ,_NONE_ ,_NONE_ ,_NONE_},
{ SetTransDisp, ModelMenuDisp, 3, 0, 1, _NONE_ ,_NONE_ ,_NONE_ ,_NONE_ ,_NONE_},
{ ControlsMenuDisp, MainMenuDisp, 1, 4, 0, MixerDisp,CurveDisp,ChanelDisp, AdvanceCtrDisp ,_NONE_},
{ MixerDisp, ControlsMenuDisp, 0, MaxControlsNames+1, 1, _NONE_ ,_NONE_ ,_NONE_ ,_NONE_ ,_NONE_},
{ CurveDisp, ControlsMenuDisp, 1, CURVE_NODES+1, 1, _NONE_ ,_NONE_ ,_NONE_ ,_NONE_ ,_NONE_},
{ ChanelDisp , ControlsMenuDisp, 2, 4, 1, _NONE_ ,_NONE_ ,_NONE_ ,_NONE_ ,_NONE_},
{ AdvanceCtrDisp, ControlsMenuDisp, 3, 4, 1, _NONE_ ,_NONE_ ,_NONE_ ,_NONE_ ,_NONE_},
{ OptionMenuDisp, MainMenuDisp, 2, 3, 0, TimerMenuDisp,BatareyDisp,MonitorDisp ,_NONE_ ,_NONE_},
{ TimerMenuDisp, OptionMenuDisp, 0, 0, 1, _NONE_ ,_NONE_ ,_NONE_ ,_NONE_ ,_NONE_},
{ BatareyDisp, OptionMenuDisp, 1, 0 , 1, _NONE_ ,_NONE_ ,_NONE_ ,_NONE_ ,_NONE_},
{ MonitorDisp, OptionMenuDisp, 2, 0 , 1, _NONE_ ,_NONE_ ,_NONE_ ,_NONE_ ,_NONE_},
{ SaveMenuDisp, MainMenuDisp, 3, 3 , 0, SaveAllDisp,CopyModDisp ,CopyCtrDisp ,_NONE_ ,_NONE_},
{ SaveAllDisp , SaveMenuDisp, 0, 1 , 1, _NONE_ ,_NONE_ ,_NONE_ ,_NONE_ ,_NONE_},
{ CopyModDisp, SaveMenuDisp, 1, 1 , 1, _NONE_ ,_NONE_ ,_NONE_ ,_NONE_ ,_NONE_},
{ CopyCtrDisp, SaveMenuDisp, 2, 3 , 1, _NONE_ ,_NONE_ ,_NONE_ ,_NONE_ ,_NONE_}
};//end menutable
собственно само переключение :