Перейти к содержанию
    

EmWin STM32F429 Таймер

Привет всем, пытаюсь работать с библиотекой GUI. Есть небольшое окошечко с графиком и парой text-ов, сделанное в 
GUIBuilder. Пытаюсь просто создать и стартануть таймер. Делаю это так. Создание таймера -
 

switch (pMsg->MsgId) {
  case WM_INIT_DIALOG:
		// USER START (Optionally insert additional code for further widget initialization)
		hTimer1 = WM_CreateTimer(pMsg->hWin, 0, 100, 0);//создаем таймер
		// USER END
....
}

 Потом создаю еще один CASE от pMsg->MsgId  WM_TIMER и пишу туда такой код -

WM_RestartTimer(pMsg->Data.v, 10);

И:    ничего не работает. Что я делаю не так???? Вроде все, как в документации и в интернете. А он зараза не уходит в WM_TIMERb вообще не пойми тикает или нет.
Подскажите, пожалуйста, где я делаю ошибку?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Делаю иначе: hWin и hTimer вынесены в глобальные переменные. В main пишу 

hWin = CreateWindow();//создаем окно
hTimer = WM_CreateTimer(hWin,0,100,0);//создаем таймер
 

в while 

while (1)
{
	GUI_Exec();
	//GUI_TOUCH_Exec();
}

и в обработчике у меня так

static void _cbDialog(WM_MESSAGE * pMsg) {
  WM_HWIN hItem;
  // USER START (Optionally insert additional variables)
	#define SIZE_GRAPH_X 460.0
  // USER END

  switch (pMsg->MsgId) {
  case WM_INIT_DIALOG:
	  //
    // Initialization of 'Window'
    //
    hItem = pMsg->hWin;
    WINDOW_SetBkColor(hItem, GUI_MAKE_COLOR(0x00F9EBFE));
    //
    // Initialization of 'Graph'
    //
    hItem = WM_GetDialogItem(pMsg->hWin, ID_GRAPH_0);
    GRAPH_SetBorder(hItem, 50, 0, 50, 0);
    //
    // Initialization of 'Text'
    //
    hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_1);
    TEXT_SetText(hItem, "ADC =");
    break;
	case WM_TIMER:
    WM_RestartTimer(hTimer, 100);
    break;
  case WM_NOTIFY_PARENT:
    break;
  default:
    WM_DefaultProc(pMsg);
    break;
  }
}

НО в WM_TIMER я все равно не попадаю. Почему так может быть?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не спец в emWin, но по аналогии с WinAPI после создания таймера его нужно еще и стартануть:

WM_RestartTimer(hTimer, 100);

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Другой вопрос по GUI -

Как задать Font для шапки таблицы. Компонент LISTVIEW. Для строк таблицы задается без проблем. А вот для шапки не могу найти функцию.

Когда задаешь общий Font для всего LISTVIEW для шапки почему-то не задается. Кто-нибудь, подскажите, в чем может быть проблема,

или какую функцию вызывать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

LISTVIEW_Handle hListView = LISTVIEW_Create(10, 80, 270, 89, 0, 1234, WM_CF_SHOW, 0);
HEADER_Handle   hHeader   = LISTVIEW_GetHeader(hListView);
HEADER_SetFont(hHeader, pFont);

emWin Graphic Library with Graphical User Interface User Guide & Reference Manual
Document: UM03001 стр.708 с небольшим изменением.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо за ответы, сделано. Есть такой вопрос, может, знает кто-нибудь, почему анимационный спрайт только один раз прокручивается (одно изображения из 20 для анимации) и виснет?

Изменено пользователем Ekka

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

То есть получается один раз после выполнения GUI_Exec() оно дрыгается (одно движение из анимации) и больше не хочет. 

Инициализируют так

hSprite= GUI_SPRITE_CreateAnim(apbmvent_anim, 200, 100, 0, aDelayvent_anim, GUI_COUNTOF(apbmvent_anim));

Сам спрайт создаю с помощью BMP Converter от GUI

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Здравствуйте, что правда, никто не знает...( весь код уже перекопан, а оно не хотит. Хоть скажите куда копать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Привет всем. Снова поднимаю тему. Кто-то делал спрайты на STEmwin keil HAL? Может кто-нибудь скинуть рабочий пример? Очень надо. Спрайты почему-то не работают. В CooCox все прекрасно отрабатывает. Анимация движется. В KEIL с HAL лажа полная, спрайт отображается, но не двигается. Ребята, кому не жалко, поделитесь рабочим примером.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...