реклама на сайте
подробности

 
 
> Навигация по строкам
Jenya7
сообщение Jul 24 2018, 09:30
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Есть массив строк
Код
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
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
XVR
сообщение Jul 24 2018, 10:35
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(Jenya7 @ Jul 24 2018, 12:30) *
по идее g_DisplayStates.WordstoDisplay теперь указывает на s_MainMenu
теперь я кнопками перебираю строки и печатаю их
Код
WriteText((uint8_t *)(*g_DisplayStates.WordstoDisplay + g_uiCounterPush));
пробовал и так
WriteText((uint8_t *)(g_DisplayStates.WordstoDisplay + g_uiCounterPush));
Но вижу мусор. Очевидно я неправильно делаю математику с указателями. Что нужно поправить?


Код
WriteText(g_DisplayStates.WordstoDisplay [g_uiCounterPush]);

Go to the top of the page
 
+Quote Post
Jenya7
сообщение Jul 24 2018, 11:18
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Цитата(XVR @ Jul 24 2018, 15:35) *
Код
WriteText(g_DisplayStates.WordstoDisplay [g_uiCounterPush]);


спасибо. изначально так и сделал. забыл добавить в аргумент второе измерение char *words[]
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th April 2024 - 14:44
Рейтинг@Mail.ru


Страница сгенерированна за 0.01418 секунд с 7
ELECTRONIX ©2004-2016