硬汉嵌入式论坛

 找回密码
 立即注册
查看: 5984|回复: 3
收起左侧

[emWin] 关于WIDGET_GrapYT与窗口定时器

[复制链接]

1

主题

5

回帖

1

积分

新手上路

积分
1
发表于 2014-8-20 15:40:37 | 显示全部楼层 |阅读模式
这个程序是作用是用来显示心电用的。现在用窗口定时器10ms绘制一个点来显示一个固定的锯齿波。能在VC上仿真成功,但是在STM32103上也能显示,但是显示的慢。不知道什么原因,求指导。
/*********************************************************************
*                                                                    *
*                SEGGER Microcontroller GmbH & Co. KG                *
*        Solutions for real time microcontroller applications        *
*                                                                    *
**********************************************************************
*                                                                    *
* C-file generated by:                                               *
*                                                                    *
*        GUI_Builder for emWin version 5.22                          *
*        Compiled Jul  4 2013, 15:16:01                              *
*        (c) 2013 Segger Microcontroller GmbH & Co. KG               *
*                                                                    *
**********************************************************************
*                                                                    *
*        Internet: www.segger.com  Support: support@segger.com       *
*                                                                    *
**********************************************************************
*/
// USER START (Optionally insert additional includes)
// USER END
#include "DIALOG.h"
#include "GRAPH.h"
/*********************************************************************
*
*       Defines
*
**********************************************************************
*/
#define ID_FRAMEWIN_0     (GUI_ID_USER + 0x00)
#define ID_GRAPH_0     (GUI_ID_USER + 0x01)

// USER START (Optionally insert additional defines)
// USER END
/*********************************************************************
*
*       Static data
*
**********************************************************************
*/
// USER START (Optionally insert additional static data)
// USER END
WM_HWIN test;
WM_HTIMER time;
GRAPH_DATA_Handle hData;
WM_HWIN  ECG;
unsigned char ecg_str;
/*********************************************************************
*
*       _aDialogCreate
*/
static const GUI_WIDGET_CREATE_INFO _aDialogCreate[] = {
  { FRAMEWIN_CreateIndirect, "Framewin", ID_FRAMEWIN_0, 0, 0, 320, 240, 0, 0x0, 0 },
  { GRAPH_CreateIndirect, "Graph", ID_GRAPH_0, 0, 0, 314, 191, 0, 0x0, 0 },
  // USER START (Optionally insert additional widgets)
  // USER END
};
/*********************************************************************
*
*       Static code
*
**********************************************************************
*/
// USER START (Optionally insert additional static code)
// USER END
/*********************************************************************
*
*       _cbDialog
*/
static void _cbDialog(WM_MESSAGE * pMsg) {
  WM_HWIN hItem;
  // USER START (Optionally insert additional variables)
  // USER END
  switch (pMsg->MsgId) {
  case WM_TIMER:
  // GUI_EndDialog(test, 0);
  ecg_str++;
   hItem = WM_GetDialogItem(test,  ID_GRAPH_0 );
    GRAPH_DATA_YT_AddValue(hData ,ecg_str);
   GRAPH_AttachData(hItem,hData);
   WM_RestartTimer(pMsg->Data.v, 10);
  if(180==ecg_str)ecg_str=0;
   break;
  case WM_INIT_DIALOG:
    //
    // Initialization of 'Framewin'
    //
    hItem = pMsg->hWin;
    FRAMEWIN_SetFont(hItem, GUI_FONT_16_ASCII);
    FRAMEWIN_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER);
    FRAMEWIN_SetTextColor(hItem, 0x00000000);
    //
    // Initialization of 'Graph'
    //
    hItem = WM_GetDialogItem(pMsg->hWin, ID_GRAPH_0);
    GRAPH_SetBorder(hItem, 1, 1, 1, 1);
    // USER START (Optionally insert additional code for further widget initialization)
    // USER END
    break;
  // USER START (Optionally insert additional message handling)
  // USER END
  default:
    WM_DefaultProc(pMsg);
    break;
  }
}
/*********************************************************************
*
*       Public code
*
**********************************************************************
*/
/*********************************************************************
*
*       CreateFramewin
*/
WM_HWIN CreateFramewin(void);
WM_HWIN CreateFramewin(void) {
  WM_HWIN hWin;
  hWin = GUI_CreateDialogBox(_aDialogCreate, GUI_COUNTOF(_aDialogCreate), _cbDialog, WM_HBKWIN, 0, 0);
  return hWin;
}
// USER START (Optionally insert additional public code)
// USER END
/*************************** End of file ****************************/

void MainTask(void);
//WM_HWIN test;
void MainTask(void) {
  WM_SetCreateFlags(WM_CF_MEMDEV);
   PROGBAR_SetDefaultSkin(PROGBAR_SKIN_FLEX);
    FRAMEWIN_SetDefaultSkin(FRAMEWIN_SKIN_FLEX);
    PROGBAR_SetDefaultSkin(PROGBAR_SKIN_FLEX);
    BUTTON_SetDefaultSkin(BUTTON_SKIN_FLEX);
    CHECKBOX_SetDefaultSkin(CHECKBOX_SKIN_FLEX);
    DROPDOWN_SetDefaultSkin(DROPDOWN_SKIN_FLEX);
    SCROLLBAR_SetDefaultSkin(SCROLLBAR_SKIN_FLEX);
    SLIDER_SetDefaultSkin(SLIDER_SKIN_FLEX);
    HEADER_SetDefaultSkin(HEADER_SKIN_FLEX);
    RADIO_SetDefaultSkin(RADIO_SKIN_FLEX);
// WM_HWIN test;
  GUI_Init();
test=CreateFramewin();
time=WM_CreateTimer( WM_GetClientWindow(test), 0, 10, 0);
hData=GRAPH_DATA_YT_Create(GUI_RED,300,0,0);
  while(1)
    {
//   ecg_str++;
//   GUI_Delay(10);
//    ECG = WM_GetDialogItem(test,  ID_GRAPH_0 );
//     GRAPH_DATA_YT_AddValue(hData ,ecg_str);
//    GRAPH_AttachData(ECG,hData);
  GUI_Exec();
//   if(180==ecg_str)ecg_str=0;
  }
}
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107157
QQ
发表于 2014-8-21 17:51:44 | 显示全部楼层
这个控件本身就比较慢
回复

使用道具 举报

1

主题

5

回帖

1

积分

新手上路

积分
1
 楼主| 发表于 2014-8-21 23:10:33 | 显示全部楼层
block to be deleted is already locked in _Free() QQ截图20140821092750.jpg QQ截图20140821225950.jpg 出现这个错误,是什么原因?求指导
回复

使用道具 举报

1

主题

5

回帖

1

积分

新手上路

积分
1
 楼主| 发表于 2014-8-22 02:52:00 | 显示全部楼层
已经解决
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-21 08:39 , Processed in 0.174515 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表