嵌入式问题

amw196209   2009-9-17 21:14 楼主
我在写程序时遇到这么一个问题,我创建了一个任务TaskLED1,想它在被调用运行时把它的信息(优先级为 9 的任务TaskLED1正在运行!)显示到上位机上,可就是显示不出来,我用的板子是周立功的ARM2138.上位机用的是easyarm.exe软件。相关程序如下。请高手指点,谢谢...................

void Task0 (void *pdata)
{        pdata = pdata;
        TargetInit ();
OSTaskCreate (TaskLED1,(void *)0, &TaskLED1Stk[TaskLED1StkSize - 1], 9,TaskLED1StkSize);
       while (1)
        {
                OSTimeDly(100);
        }
}

void  TaskLED1(void *pdata)
{       pdata = pdata;
        char *msg;                                          // 避免编译警告
        PINSEL2 = PINSEL2 & (~0x08);                                 // P1[25:16]选择GPIO
        IO1DIR |= LED1;                                                    // 设置LED1控制口输出
        IO1CLR  = LED1;
       msg = "优先级为 9 的任务TaskLED1正在运行!";
       UART0_SendStr(msg);
       UART0_SendStr("\r\n");

    for (;;)
    {
        IO1SET = LED1;
        OSTimeDly(VI_TICKS_PER_SEC*10);
        IO1CLR = LED1;
        OSTimeDly(VI_TICKS_PER_SEC*10);
   }
}

回复评论 (6)

我用过周立功的1138,也有这样的问题,我的是UART是通过USB送到终端的

所以我觉得看看TargetInit (); 里的uart初始化
点赞  2009-9-19 19:43
首先检查一下你的Timer0是否正确配置好,如果没有配置好Timer,OS是不会切换任务的。
点赞  2009-9-21 11:09
没有初始化串口,怎么可能发出数据来
点赞  2009-9-22 17:09
值得思考
点赞  2009-9-25 04:28
TargetInit (); 里的uart初始化的波特率与上位机的比特率设置是否一样?
点赞  2009-10-1 14:55
不错的贴
点赞  2009-10-4 01:32
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复