硬汉嵌入式论坛

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

[emWin] static char导致进falut

[复制链接]

3

主题

20

回帖

3

积分

新手上路

积分
3
发表于 2015-5-14 17:53:46 | 显示全部楼层 |阅读模式
static void _cbGRAPH(WM_MESSAGE *pMsg)
{

    WM_HWIN    hDlg;
    WM_HWIN    hItem;
         uint8_t Index = 0;

    hDlg = pMsg->hWin;
    switch (pMsg->MsgId)
    {

    case WM_INIT_DIALOG:

        break;

//    case WM_DELETE:
//        GUI_Clear();
//        break;

    case WM_CREATE:
        hItem = GRAPH_CreateEx(0, 0, 320, 219, hDlg, WM_CF_SHOW | WM_CF_MEMDEV, 0, GUI_ID_GRAPH0);

        //
        // Add graphs
        //
        ahData[0] = GRAPH_DATA_YT_Create(_aColor[0], 100, 0, 0);
        ahData[1] = GRAPH_DATA_YT_Create(_aColor[1], 320, 0, 0);
        ahData[2] = GRAPH_DATA_YT_Create(_aColor[2], 320, 0, 0);

        GRAPH_AttachData(hItem, ahData[0]);
        GRAPH_AttachData(hItem, ahData[1]);
        GRAPH_AttachData(hItem, ahData[2]);

        WIDGET_SetEffect(hItem, &WIDGET_Effect_None);
        //
        // Set graph attributes
        //
        GRAPH_SetGridDistX(hItem, 20);
        GRAPH_SetGridDistY(hItem, 20);
//        GRAPH_SetGridVis(hGraph, 1);
//        GRAPH_SetGridFixedX(hItem, 1);
//        GRAPH_SetUserDraw(hItem, _UserDraw);
        WM_CreateTimer(hDlg, /* 接受信息的窗口的句柄 */
                       ID_TimerGraph,              /* 用户定义的Id。如果不对同一窗口使用多个定时器,此值可以设置为零。 */
                       200,                       /* 周期,此周期过后指定窗口应收到消息*/
                       0);                         /* 留待将来使用,应为0 */
        WM_SetFocus(hDlg);
        GRAPH_SetGridVis(hItem, 1);
        break;


    case WM_TIMER:
        if(WM_GetTimerId(pMsg->Data.v) == ID_TimerGraph)
        {
            GRAPH_DATA_YT_AddValue(ahData[0], (_HeartBeat[Index] / 2) + 20);
            GRAPH_DATA_YT_AddValue(ahData[1], (_HeartBeat1[Index] / 2) + 100);
            GRAPH_DATA_YT_AddValue(ahData[2], (_HeartBeat2[Index] / 2) + 190);

            if (++Index == GUI_COUNTOF(_HeartBeat))
            {
                Index = 0;
            }
            WM_RestartTimer(pMsg->Data.v, 200);
        }
        break;


    case WM_PAINT:
//        GUI_Clear();
        break;

    case WM_KEY:
        switch (((WM_KEY_INFO *)(pMsg->Data.p))->Key)
        {

        case GUI_KEY_ESCAPE:
            break;

        case GUI_KEY_ENTER:
            GUI_EndDialog(hDlg, 0);
            CreateICONVIEW();
            break;
        }
        break;

    default:
        WM_DefaultProc(pMsg);
    }
}
这是桌面往里进的

    case WM_KEY:
        switch (((WM_KEY_INFO *)(pMsg->Data.p))->Key)
        {
        case GUI_KEY_ESCAPE:
            GUI_EndDialog(hDlg, 1);
            GRAPH_Task();

_cbGRAPH是GRAPH_Task();的回调函数
回复

使用道具 举报

3

主题

20

回帖

3

积分

新手上路

积分
3
 楼主| 发表于 2015-5-14 17:54:47 | 显示全部楼层
uint8_t Index 原来是static char Index,程序参考的监护仪的程序
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107868
QQ
发表于 2015-5-14 22:04:53 | 显示全部楼层
这个变量设置成全部变量试试uint8_t Index = 0;
回复

使用道具 举报

3

主题

20

回帖

3

积分

新手上路

积分
3
 楼主| 发表于 2015-5-15 09:23:08 | 显示全部楼层
也会出现falut
回复

使用道具 举报

3

主题

20

回帖

3

积分

新手上路

积分
3
 楼主| 发表于 2015-5-15 09:24:24 | 显示全部楼层
调试发现实在进行windowdelete()时出现的
回复

使用道具 举报

3

主题

20

回帖

3

积分

新手上路

积分
3
 楼主| 发表于 2015-5-15 09:36:58 | 显示全部楼层
WM_DeleteWindow
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107868
QQ
发表于 2015-5-15 16:51:58 | 显示全部楼层
注意窗口上的GRAPH控件要单独删除
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-17 03:41 , Processed in 0.170229 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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