Есть массив строк
Код
char *s_MainMenu[] =
{
"MAINT ",
" AUTO ",
"MANUAL",
"FAILS ",
"MUXBUS"
};
и структура
Код
typedef struct
{
char **WordstoDisplay;
uint8_t MenuState;
uint8_t MaxStringIndex;
}g_sDisplay;
g_sDisplay g_DisplayStates;
я ее инициализирую
Код
void set_display_state(uint8_t state_val, uint8_t state_maxind, char **words)
{
g_DisplayStates.MenuState = state_val;
g_DisplayStates.MaxStringIndex = state_maxind;
g_DisplayStates.WordstoDisplay = words;
}
set_display_state(MAIN_STATE,MAX_MAIN_INDEX, s_MainMenu);
по идее g_DisplayStates.WordstoDisplay теперь указывает на s_MainMenu
теперь я кнопками перебираю строки и печатаю их
Код
WriteText((uint8_t *)(*g_DisplayStates.WordstoDisplay + g_uiCounterPush));
пробовал и так
WriteText((uint8_t *)(g_DisplayStates.WordstoDisplay + g_uiCounterPush));
Но вижу мусор. Очевидно я неправильно делаю математику с указателями. Что нужно поправить?
Сообщение отредактировал Jenya7 - Jul 24 2018, 09:32