Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Не выводится текст в uC-GUI
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Vladimir_T
Здравствуйте, уважаемые коллеги, где можно почитать об внутреннем устройстве uC/GUI? И почему может не выводиться текст, при том, что графика выводится нормально? Система такая: АРМ STR911, S1D13705, uC/OS. Тест раньше выводился с разными шрифтами, сейчас выводятся лишь подчищенное окошко, да и то неправильных размеров. Чтобы понять ошибку хотел бы точно знать цепочку вызовов функций. Заранее благодарен.
AlexandrY
Схематично выглядит так:

Код
{
  void       *bmp_logo;

  LCD_Init();  // Инициализируем дисплей (наша функция)  
  GUI_Init();  // Инициализируем GUI (функция микриума)

  Get_bmp_from_file(LOGO_FNM, &bmp_logo); // Прочитаем в память BMP файл например (наша функция)
  
  GUI_SetBkColor(GUI_WHITE); // Установим цвет фона

  GUI_Clear(); // Зальем все окно выбраным цветом

  GUI_SetColor(GUI_BLACK);// Цвет рисования

  GUI_SetPenSize(1);     // Толщина линий
  GUI_BMP_Draw(bmp_logo,0, 0); // Вывод BMP

  GUI_SetFont(&GUI_Font6x8);// Выбор шрифта
  strcpy(str,"Demo");
  
  GUI_DispStringAt(str,0,40); // Вывод строки


}



Еще надо помнить, что uС/GUI не реентерабельная, т.е. нельзя вызывать в чистом виде функции GUI из разных задач.
Надо всегда защищать семафорами все обращения к GUI.
При этом после любого вызова могут оказаться изменеными цвета и шрифты.
Поэтому выполнять надо в одном непрерывном защищенном семафорами блоке и установку цветов и шрифтов и непосредственно вывод.


Цитата(Vladimir_T @ Jun 25 2008, 06:04) *
Здравствуйте, уважаемые коллеги, где можно почитать об внутреннем устройстве uC/GUI? И почему может не выводиться текст, при том, что графика выводится нормально? Система такая: АРМ STR911, S1D13705, uC/OS. Тест раньше выводился с разными шрифтами, сейчас выводятся лишь подчищенное окошко, да и то неправильных размеров. Чтобы понять ошибку хотел бы точно знать цепочку вызовов функций. Заранее благодарен.
Vladimir_T
Спасибо за ответ. Проблема решена. Пришлось сделать небольшую задержку в низкоуровневой функции вывода в контроллер LCD.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.