WM_Timer в StemWin не работает

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
EVorontsov
Родился
Сообщения: 5
Зарегистрирован: Пт ноя 15, 2019 13:21:39

WM_Timer в StemWin не работает

Сообщение EVorontsov »

День добрый.

Начал играться с StemWin. Пытаюсь сделать чтение датчика и вывод на график по таймеру. Вот только не могу никак в обработчик событий попасть. Похоже, что таймер не запускается.

Имеет ли кто опыт с подобным?

Код: Выделить всё

static void _cbDialog(WM_MESSAGE * pMsg) {
  WM_HWIN hItem;
  int     NCode;
  int     Id;
  // USER START (Optionally insert additional variables)
  // USER END

  switch (pMsg->MsgId) {
  case WM_INIT_DIALOG:
    //
    // Initialization of 'Graph'
    //

    hItem = WM_GetDialogItem(pMsg->hWin, ID_GRAPH_0);
    GRAPH_SetBorder(hItem, 3, 3, 3, 3);
    // USER START (Optionally insert additional code for further widget initialization)

	hTimer = WM_CreateTimer(pMsg->hWin, 0, 100, 0);

    // USER END
    break;

  case WM_TIMER:
     GUI_Exec();
     WM_RestartTimer(pMsg->hWin, 100);
     break;

  case WM_NOTIFY_PARENT:
    Id    = WM_GetId(pMsg->hWinSrc);
    NCode = pMsg->Data.v;
    switch(Id) {
    case ID_BUTTON_0: // Notifications sent by '/2'
      switch(NCode) {

      case WM_NOTIFICATION_CLICKED:
        // USER START (Optionally insert code for reacting on notification message)
        // USER END
        break;
      case WM_NOTIFICATION_RELEASED:
        // USER START (Optionally insert code for reacting on notification message)
        // USER END
        break;
      // USER START (Optionally insert additional code for further notification handling)
      // USER END
      }
      break;
    case ID_BUTTON_1: // Notifications sent by '*2'
      switch(NCode) {
      case WM_NOTIFICATION_CLICKED:
        // USER START (Optionally insert code for reacting on notification message)
        // USER END
        break;
      case WM_NOTIFICATION_RELEASED:
        // USER START (Optionally insert code for reacting on notification message)
        // USER END
        break;
      // USER START (Optionally insert additional code for further notification handling)
      // USER END
      }
      break;
    // USER START (Optionally insert additional code for further Ids)
    // USER END
    }
    break;
  // USER START (Optionally insert additional message handling)
  // USER END
  default:
    WM_DefaultProc(pMsg);
    break;
  }
}
Реклама
EVorontsov
Родился
Сообщения: 5
Зарегистрирован: Пт ноя 15, 2019 13:21:39

Re: WM_Timer в StemWin не работает

Сообщение EVorontsov »

Потерял полдня, но разобрался….
Может кому полезно будет:
stm32f4xx_it.c

Код: Выделить всё

/* Private user code ———————————————————*/
/* USER CODE BEGIN 0 */
#include «GUI.h»
volatile GUI_TIMER_TIME OS_TimeMS;
/* USER CODE END 0 */
void SysTick_Handler(void)
{
/* USER CODE BEGIN SysTick_IRQn 0 */
/* USER CODE END SysTick_IRQn 0 */
HAL_IncTick();
/* USER CODE BEGIN SysTick_IRQn 1 */
OS_TimeMS++;
/* USER CODE END SysTick_IRQn 1 */
}
Реклама
Ответить

Вернуться в «ARM»