ucos和ucgui怪现象,GUI_Init();放在main函数有问题,放在第一个任务

2020-01-07 19:23发布

放在第一个任务初始化  才正常?
由于两个任务都调用了ucgui

#include <includes.h>
#define  TASK_STK_SIZE    128
OS_STK TaskOneStack[TASK_STK_SIZE];
OS_STK TaskTwoStack[TASK_STK_SIZE];
void TaskOne(void *p_arg);
void TaskTwo(void *p_arg);

void main(void)
{
        BSP_Init();       
        //GUI_Init();放在这不正常
        OSInit();     
        OSTaskCreate(TaskOne,0, &TaskOneStack[TASK_STK_SIZE-1],6);
        OSTaskCreate(TaskTwo,0, &TaskTwoStack[TASK_STK_SIZE-1],7);
        OSStart();               
}

void  TaskOne(void *p_arg)
{
        int x=0;
        p_arg = p_arg;
        GUI_Init();
        while (1)         
        {   
                GUI_DispDecAt(x++,0,0,3);
                OSTimeDlyHMSM(0, 0, 1, 0);   
        }
}
void  TaskTwo(void *p_arg)
{
        int y=0;
        p_arg = p_arg;
        while(1)
        {
                GUI_DispDecAt(y++,100,0,3);
                OSTimeDlyHMSM(0, 0, 1, 0);   
        }          
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
RUANJI
1楼-- · 2020-01-07 23:32
没纠结过这个问题。但初步看来,应该是uCGUI里面加了与操作系统相关的函数导致的。所以应该放在操作系统初始化之后。
RUANJI
2楼-- · 2020-01-08 02:44
不对啊,我查看了我以前写的代码。就是放在初始化操作系统之前,也没有任何问题啊。
jisaowang2
3楼-- · 2020-01-08 05:49
第一个任务优先级比第二个高,你把初始化放第二个?然后开始调度的时候直接进第一个任务了,然后第一个执行的时候等于还没初始化?很好很强大!
3050311118
4楼-- · 2020-01-08 10:35
 精彩回答 2  元偷偷看……
3050311118
5楼-- · 2020-01-08 15:20
RUANJI 发表于 2014-2-18 13:43
不对啊,我查看了我以前写的代码。就是放在初始化操作系统之前,也没有任何问题啊。 ...

但是  又试了很多次  GUI_Init写在main那边还是有问题
写在第一个任务初始化  没有问题。
不知道什么原因
styleno1
6楼-- · 2020-01-08 20:34
初始化就这么些调用,没有什么相关性。

gui.jpg (40.63 KB, 下载次数: 0)

下载附件

2014-2-18 15:29 上传

一周热门 更多>