Easyelectronics.ru

Электроника для всех
Текущее время: 22 авг 2019, 21:29

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/10pcs (Любой цвет!)
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 1239 ]  На страницу Пред.  1 ... 46, 47, 48, 49, 50
Автор Сообщение
 Заголовок сообщения: Re: STemWin на STM32F4. Первый опыт. Вопросы.
СообщениеДобавлено: 12 дек 2018, 12:33 
Старожил

Зарегистрирован: 16 ноя 2012, 07:47
Сообщения: 2847
Сделать в _cbDialog таймер, в case которого смотреть глобальную переменную, и обновлять значение прогбара.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STemWin на STM32F4. Первый опыт. Вопросы.
СообщениеДобавлено: 12 дек 2018, 12:42 
Старожил
Аватара пользователя

Зарегистрирован: 23 янв 2013, 12:33
Сообщения: 1769
Откуда: Донецк, ДНР
PROGBAR_SetValue(hItem, 47); надо вызывать не в main, а, внутри окна, если так можно выразиться.
Я бы сделал функцию

Код:
void Set_progressBar(int value)
{
      PROGBAR_SetValue(hItem, value);
      WM_InvalidateWindow (hItem);
}


И вызывал где надо. Естестественно, когда окно существует. hItem, глобальный. Либо инитить на ходу, как Вы и делаете в INIT.
Либо в таймере, как Hold сказал.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STemWin на STM32F4. Первый опыт. Вопросы.
СообщениеДобавлено: 12 дек 2018, 13:19 
Старожил

Зарегистрирован: 23 авг 2014, 11:01
Сообщения: 775
Тоже хочу спросить.
Можно сделать большую прозрачную кнопку, чтобы через нее можно было видеть текст?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STemWin на STM32F4. Первый опыт. Вопросы.
СообщениеДобавлено: 12 дек 2018, 14:06 
Только пришел

Зарегистрирован: 23 фев 2012, 19:41
Сообщения: 15
Откуда: Kiev
Благодарю за ответ.
Прошу прощения за наглость, но не могли бы Вы показать как это прописать в main.c и WindowDLG.c.
Потому как в файле main.c конструкция типа:
WM_HWIN hItem2;
hItem2 = WM_GetDialogItem(hItem, ID_PROGBAR_0);

Вызывает ошибку, потому как hItem не обьявлен.

Я во вложении добавлю архив с файлом main.c и WindowDLG.с. Очень прошу показать как из вне WindowDLG.c менять параметры виджета и обновлять изображение с изменёнными параметрами. Хотелось бы не всё окно перерисовывать, а только определённый виджет. Для этого функция GUI_EXE() ?


Вложения:
emWin.rar [4.69 Кб]
Скачиваний: 52
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STemWin на STM32F4. Первый опыт. Вопросы.
СообщениеДобавлено: 13 дек 2018, 08:12 
Старожил

Зарегистрирован: 23 авг 2014, 11:01
Сообщения: 775
Чета не понял создаю разные окна
Код:
        GUI_EndDialog(pMsg->hWin, 0);
        WM_DeleteWindow(pMsg->hWin);
        hDlg = GUI_CreateDialogBox(s0_aDialogCreate, GUI_COUNTOF(s0_aDialogCreate), s0_cbDialog, WM_HBKWIN, 0, 0);  //переходим в нужное


Код:
        GUI_EndDialog(pMsg->hWin, 0);  //закрываем текущее
        WM_DeleteWindow(pMsg->hWin);
        hDlg = GUI_CreateDialogBox(w_aDialogCreate, GUI_COUNTOF(w_aDialogCreate), w_cbDialog, WM_HBKWIN, 0, 0);  //переходим в нужное


А переменная hDlg не меняет своего значения при создании нового окна. Всегда равняется 3.

Теперь возник вопрос как можно понять, в каком окне я нахожусь?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STemWin на STM32F4. Первый опыт. Вопросы.
СообщениеДобавлено: 13 дек 2018, 10:02 
Старожил

Зарегистрирован: 16 ноя 2012, 07:47
Сообщения: 2847
Когда сам разбирался, мне показалось что это просто какой-то счетчик окон. Может повторяться, вы же предыдущее удалили. А возможно что и баг. К примеру, на версии 532 я не мог получить никаких образом хэндл родительского окна, находясь в дочернем. Не работало никаким образом, пришлось глобальную переменную объявлять.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STemWin на STM32F4. Первый опыт. Вопросы.
СообщениеДобавлено: 13 дек 2018, 10:21 
Старожил

Зарегистрирован: 23 авг 2014, 11:01
Сообщения: 775
У меня stemwin5.40. Я думаю какое то решение должно быть.
Как понял если окно не удалять то происходит утечка памяти.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STemWin на STM32F4. Первый опыт. Вопросы.
СообщениеДобавлено: 14 дек 2018, 01:26 
Только пришел

Зарегистрирован: 23 фев 2012, 19:41
Сообщения: 15
Откуда: Kiev
hd44780 писал(а):
Естестественно, когда окно существует. hItem, глобальный. Либо инитить на ходу, как Вы и делаете в INIT.
Либо в таймере, как Hold сказал.


у меня hItem почему то не глобальный. куда копать?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STemWin на STM32F4. Первый опыт. Вопросы.
СообщениеДобавлено: 14 дек 2018, 12:18 
Старожил

Зарегистрирован: 16 ноя 2012, 07:47
Сообщения: 2847
Кстати, вроде как симпатичный TouchGFX стал "бесплатным" и под крылом ST. Раньше он стоил немалых денег. Надо будет при случае опробовать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STemWin на STM32F4. Первый опыт. Вопросы.
СообщениеДобавлено: 20 июн 2019, 16:23 
Здравствуйте!

Зарегистрирован: 20 июн 2019, 15:56
Сообщения: 2
может кто сталкивался, прикрутил ssd1963 (800х480) к stm32f407, stemwin 5.2, все работает замечательно, но есть проблема с красным цветом. А именно как то некорректно отображается последовательность красного
На картинке это видно (последовательно перебираю BGR от 0 до 255)
с синим и зеленым проблем нет. и остается красноватый фон вместо черного. При отображениие jpeg так же все цвета в норме, но уходит в красноту. Перекопал/перепробовал все настройки ничего криминального не нашел.
Из настроек
Инициализация
Show


pDevice = GUI_DEVICE_CreateAndLink(GUIDRV_FLEXCOLOR, GUICC_565, 0, 0);


GUIDRV_FlexColor_Config(pDevice, &Config);

GUIDRV_FlexColor_SetReadFunc66720_B16(pDevice, GUIDRV_FLEXCOLOR_READ_FUNC_II);
GUIDRV_FlexColor_SetFunc(pDevice, &PortAPI, GUIDRV_FLEXCOLOR_F66720, GUIDRV_FLEXCOLOR_M16C0B16);

Может сталкивался кто с такой проблемой?
PS: На фото зеленая полоса переходит в желтизну, на самом деле это отблик на дисплее зеленый выглядит равномерно от темного до ярко зеленого


Вложения:
stm.jpg
stm.jpg [ 112.39 Кб | Просмотров: 392 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STemWin на STM32F4. Первый опыт. Вопросы.
СообщениеДобавлено: 20 июн 2019, 16:27 
Старожил

Зарегистрирован: 16 ноя 2012, 07:47
Сообщения: 2847
Смахивает на хардварный коротыш/непропай где-то в линии красного цвета. От FPC коннектора на матрицу до SSD1963 нет никакого криминала?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STemWin на STM32F4. Первый опыт. Вопросы.
СообщениеДобавлено: 20 июн 2019, 22:57 
Здравствуйте!

Зарегистрирован: 20 июн 2019, 15:56
Сообщения: 2
Hold писал(а):
Смахивает на хардварный коротыш/непропай где-то в линии красного цвета. От FPC коннектора на матрицу до SSD1963 нет никакого криминала?

На двух одинаковых дисплеях одно и тоже


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STemWin на STM32F4. Первый опыт. Вопросы.
СообщениеДобавлено: 22 июн 2019, 13:50 
Старожил
Аватара пользователя

Зарегистрирован: 23 янв 2013, 12:33
Сообщения: 1769
Откуда: Донецк, ДНР
sabrat писал(а):
у меня hItem почему то не глобальный. куда копать?

А кто мешает переделать?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STemWin на STM32F4. Первый опыт. Вопросы.
СообщениеДобавлено: 28 июн 2019, 12:33 
Здравствуйте!

Зарегистрирован: 28 июн 2019, 12:17
Сообщения: 1
Добрый день посетителям форума.
Осилил 50 страниц. Что-то понял, что-то нет.
1. Искал алгоритм работы с экраном, нашел, спасибо.
2. Искал способы перерисовки экрана, нашел, спасибо. Оказалось, что через таймер не мерцает, а через WM_Invalidet мерцает из-за полной перерисовки.
3. Искал способ вывода рисунка поверх текущего, "Пример, вывести сердце на фоне человека", выводит на задний фон (видно по маленькой полочке с краю экрана).
Прошу помочь с алгоритмами таких действий.

Работаю под FreeRTOS c emWin.
Основная задача:
Код:
  GUI_SetBkColor(GUI_TRANSPARENT);
  GUI_SelectLayer(1);
  GUI_Clear();
  GUI_SetBkColor(GUI_TRANSPARENT);
  GUI_SelectLayer(0);
  WM_MULTIBUF_Enable(0);
  KS_hWin = CreateWindow();
while (1)
   {
      GUI_Exec();
   }

Код диалога CreateWindow(); создан стандартно GUIBilder

Код работы по таймеру для вывода дополнительного рисунка в CreateWindow();
Код:
case WM_TIMER:
GUI_DrawBitmap(&bm3,0,0);
GUI_Exec();
WM_RestartTimer ( pMsg->Data.v, 1000 );
break;


Способ открытия второго окна по какому либо событию не пробовал. Боюсь потерять память, боюсь отхватить проблем с прозрачностью, боюсь просто отхватить, просто боюсь :)
Основная цель поворот и перемещение рисунка. Примеры из библиотеки типа ZoomAndRotate не понял как реализовали.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 1239 ]  На страницу Пред.  1 ... 46, 47, 48, 49, 50

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB