硬汉嵌入式论坛

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

[μCGUI] 请教下 ucGUI +uCOS 死循环的问题

[复制链接]

6

主题

9

回帖

6

积分

新手上路

积分
6
发表于 2013-7-23 20:21:42 | 显示全部楼层 |阅读模式
又发现了一个问题,请教下.......我创建了三个任务,Task_Touch优先级最高,Task_Start任务最低,Task_Menu任务中间,在Task_Menu中创建了一些按钮,我现在想点击某个按钮,用
GUI_MessageBox("Function does not support!","NOTE",GUI_MESSAGEBOX_CF_MOVEABLE);
弹出一个消息框,现在的问题是弹出消息框后 无法点击消息框的按钮,仿真发现卡在函数WM_Exec()函数里面,甚至连任务Task_Touch都进不去了....不明白什么原因,望指教...谢谢了
下面是主要代码:
void   Task_Start(void*p_arg)
{
               
                OSTaskCreate(Task_Touch,(void*)0,&TASK_TOUCH_STK[TASK_TOUCH_STK_SIZE-1],TASK_TOUCH_PRIO);
                OSTaskCreate(Task_Menu,(void*)0,&TASK_MENU_STK[TASK_MENU_STK_SIZE-1],TASK_MENU_PRIO);                                    
                while(1)
                {                                
                                LED1(ON);               
                                OSTimeDlyHMSM(0,0,0,300);
                                LED1(OFF);
                                OSTimeDlyHMSM(0,0,0,300);
                }        
}


void  Task_Touch(void*p_arg)
{
                GUI_PID_STATE   TouchPoint;
                (void)p_arg;
                while(1)
                {                                
                                GUI_TOUCH_Exec();
                                GUI_TOUCH_GetState(&TouchPoint);
                                if (TouchPoint.Pressed)
                                {
                                                if(TouchFlag == TouchUnPressed)
                                                {
                                                                TouchFlag = TouchPress;
                                                }

                                }
                                else
                                {
                                                if(TouchFlag == TouchPressed)
                                                {
                                                                TouchFlag = TouchUnPress;        
                                                }
                                }        
                                GUI_Exec();//重绘            
                                OSTimeDlyHMSM(0,0,0,5);                                    
                }               
}


void  Task_Menu(void*p_arg)
{
                (void)p_arg;
                MainMenu_Init(); //在桌面上创建了一些按钮
                while(1)
                {               
                                if((Menu_ID==MainMenu_ID)&&TouchCmd==1) //为了区分当前的界面
                                {               
                                                TouchCmd = 0;
                                                switch(GUI_GetKey())
                                                {
                                                                case GUI_ID_BUTTON0:
                                                                                GUI_MessageBox("Function does not support!","NOTE",GUI_MESSAGEBOX_CF_MOVEABLE);//就是卡在这里了
                                                                                break;
                                                                default:
                                                                                TouchCmd = 1;
                                                                                break;                                
                                                }                                                
                                }
                                OSTimeDlyHMSM(0,0,0,20);
                 }
}

#define GUI_ALLOC_SIZE          10240   //这个也够大了吧
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106938
QQ
发表于 2013-7-30 10:55:41 | 显示全部楼层
不好意思楼主,才看到你的问题,你的问题解决了没有
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-11 02:04 , Processed in 0.172149 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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