硬汉嵌入式论坛

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

[emWin] 中断控制页面切换不成功

[复制链接]

2

主题

2

回帖

16

积分

新手上路

积分
16
发表于 2018-8-1 00:48:21 | 显示全部楼层 |阅读模式
在Framewin里面修改变量,判断变量值来切换页面,工作正常。
通过中断来修改变量,并根据变量值发送消息到页面,实现页面切换就会卡死。systick试过,也是同样问题。
有人遇到过类似问题吗?各位大神帮忙看看什么原因啊。。
谢谢!


Framewin代码:
  case WM_UPDATE: //--------------(3)
        GUI_EndDialog(pMsg->hWin,1);
        hPage[22]=CreateFrmP22(WM_HBKWIN);

中断内代码:

        if(Task[0].V[2] &&
           (year<<20|mon<<16|day<<11|hour<<6|min)>=
           (Task[0].T.year<<20|Task[0].T.mon<<16|Task[0].T.day<<11|Task[0].T.start_hour<<6|Task[0].T.start_min) )
        {
            guangai_en=1;
            WM_SendMessageNoPara(WM_GetClientWindow(hPage[41]), WM_UPDATE);
        }
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115765
QQ
发表于 2018-8-1 01:37:47 | 显示全部楼层
是否使用RTOS了,如果使用RTOS了,不要在中断里面调用emWin的API。因为emWin的底层做了互斥操作,互斥的API一般都不可以在中断里面调用的。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115765
QQ
发表于 2018-8-1 01:37:50 | 显示全部楼层
是否使用RTOS了,如果使用RTOS了,不要在中断里面调用emWin的API。因为emWin的底层做了互斥操作,互斥的API一般都不可以在中断里面调用的。
回复

使用道具 举报

2

主题

2

回帖

16

积分

新手上路

积分
16
 楼主| 发表于 2018-8-1 21:12:31 | 显示全部楼层
没有使用RTOS啊。。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115765
QQ
发表于 2018-8-2 01:54:40 | 显示全部楼层
Sam 发表于 2018-8-1 21:12
没有使用RTOS啊。。

那看来是中断里面调用此函数不靠谱,换个实现方案吧
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-17 07:07 , Processed in 0.253182 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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