打印

请教一个ucos的问题?

[复制链接]
1643|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jack.king|  楼主 | 2008-8-16 17:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
程序如下:
#include <includes.h>
void TaskStartyya(void *yydata) reentrant;
OS_STK TaskStartStkyya[MaxStkSize];
void main(void)
{
    OSInit();
    InitTimer0();//程序可以执行到这里下面的就没有执行了我感到很不解!但是软件仿真的时候有可以用(是用keilc里面写的)
    OSTaskCreate(TaskStartyya, (void *)0, &TaskStartStkyya[0],2);
    OSStart();
}
void TaskStartyya(void *yydata) reentrant
{
    yydata=yydata;
    beep =0;//喇叭响
    for(;;)
           {
            led = 1;//发光二极管亮
            OSTimeDly(OS_TICKS_PER_SEC);    
           }    
}

相关帖子

沙发
while_1| | 2008-8-17 01:13 | 只看该作者

试试作如下改动


void TaskStartyya(void *yydata) reentrant
{
    yydata=yydata;
    InitTimer0();//把定时器开启部分放到这里
    beep =0;//喇叭响
    for(;;)
           {
            led = 1;//发光二极管亮
            OSTimeDly(OS_TICKS_PER_SEC);    
           }    
}

这样的写法是书上这么建议的(等初始化完成后再进行任务调度)。

使用特权

评论回复
板凳
jack.king|  楼主 | 2008-8-17 10:32 | 只看该作者

谢谢LS的方法但是还是没有作用!

使用特权

评论回复
地板
jack.king|  楼主 | 2008-8-19 21:07 | 只看该作者

找了好多资料还是没有解决

找了好多资料还是没有解决
   在网上都说要修改startup.a51我也按照要求去修改了
  但是还是没有解决问题?
   难道还要去修改什么别的东西吗?

  

使用特权

评论回复
5
jack.king|  楼主 | 2008-8-21 11:52 | 只看该作者

?

使用特权

评论回复
6
三块石头| | 2008-8-21 13:23 | 只看该作者

InitTimer0()里不能开中断

应当放在OSStart()之后再开中断

另外timer0是不是没有允许中断? 或者TR0位没有置起来?

使用特权

评论回复
7
oahzhao| | 2008-8-21 17:01 | 只看该作者

timer0一定要开不然OS就跑不起来的

使用特权

评论回复
8
jack.king|  楼主 | 2008-8-22 10:22 | 只看该作者

改来改还是没有变化?

使用特权

评论回复
9
jack.king|  楼主 | 2008-8-22 13:05 | 只看该作者

6L的大侠请问若在OSStart()之前开中断不影响仿真吗?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

488

主题

2158

帖子

1

粉丝