搜索
bottom↓
回复: 1

关于AvrXdelay的问题

[复制链接]

出0入0汤圆

发表于 2009-9-9 13:45:19 | 显示全部楼层 |阅读模式
我的工程里面一用AvrXdelay就死翘翘了
哪位有相关的例子么


下面是我的代码
所用的avrx系统为 http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=3208344&bbs_id=3004&bbs_page_no=1
里面下载的


AVRX_GCC_TASK(task1, 10, 3);
AVRX_GCC_TASK(task2, 20, 1);
AVRX_GCC_TASK(task3, 30, 1);
AVRX_MUTEX(TimerSemaphore);        //声明一个信号量

TimerControlBlock timer1, timer2, timer3, timer4;
int main(void)
{
    AvrXSetKernelStack(0);
        DS1302_Init();
        GUI_Init();       
        GUI_VarInit();
        Key_Init();
       
        MCUCR = _BV(SE);      // Initialize Timer Hardware
        TCNT0 = TCNT0_INIT;
        TCCR0 = TMC8_CK256;
        TIMSK = _BV(TOIE0);

    AvrXRunTask(&task1Tcb);
    AvrXRunTask(&task2Tcb);
    AvrXRunTask(&task3Tcb);
    Epilog();                   // Switch from AvrX Stack to first task
    while (1);
}


AVRX_SIGINT(SIG_OVERFLOW0)
{
    IntProlog();
    TCNT0 = TCNT0_INIT;
    AvrXIntSetSemaphore(&TimerSemaphore);
        AvrXTimerHandler();
    Epilog();
}

NAKEDFUNC(task1)
{       
        uint myKey;
        uchar Key;                //按键
        while (1)
    {

                if(GUI_Flash)
                {
            cli();
            GUI_Clear();        //清空                       
                        str1=*(pMenu[Language].Text+Item);
                        str2=*(pMenu[Language].Text+Item+1);
                       
            GUI_PutStrAt(str1,0,0);
                        AvrXDelay(&timer1,2);//<-----------------程序运行到这里卡死了,为什么?
            GUI_PutStrAt(str2,0,1);
                        if(Where<MaxDispY)
            {
                GUI_SetPos(15,Where);
                GUI_PutStr("<");
            }
                        GUI_Flash=0;
            sei();
        }
                myKey=PINA;               
                AvrXDelay(&timer1,20);
                Key=PINA;
                if(Key!=myKey)continue;
                while(myKey!=0xf0)
                {
                        myKey=PINA;               
                        myKey&=0xf0;
                        AvrXDelay(&timer1,1);
                }

                AvrXWaitSemaphore(&TimerSemaphore);
                if(myKey!=0xf0)continue;
                Key&=0xf0;               

        switch (Key)
        {
        case UP:                                        //向上键
                        KeyFuncIndex=KeyTab[KeyFuncIndex].KeyUpState;       
                        KeyFuncPtr=KeyTab[KeyFuncIndex].CurrentOperate;
                        (*KeyFuncPtr)();//执行当前按键的操作
                        break;
        case DN:                                        //向下键
                        KeyFuncIndex=KeyTab[KeyFuncIndex].KeyDnState;
                        KeyFuncPtr=KeyTab[KeyFuncIndex].CurrentOperate;
                        (*KeyFuncPtr)();//执行当前按键的操作               
                        break;
                case ESC:                                        //返回键
                        KeyFuncIndex=KeyTab[KeyFuncIndex].KeyEscState;
                        KeyFuncPtr=KeyTab[KeyFuncIndex].CurrentOperate;
                        (*KeyFuncPtr)();//执行当前按键的操作       
                        break;
                case ETR:                                        //进入键
                        KeyFuncIndex=KeyTab[KeyFuncIndex].KeyEtrState;
                        KeyFuncPtr=KeyTab[KeyFuncIndex].CurrentOperate;
                        (*KeyFuncPtr)();//执行当前按键的操作       
                        break;
                default:
            break;
                }
        }
}


NAKEDFUNC(task2)
{
    while (1)
    {
                AvrXWaitSemaphore(&TimerSemaphore);
       
    }
}

NAKEDFUNC(task3)
{
    while(1)
    {
                AvrXWaitSemaphore(&TimerSemaphore);
    }
}

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

 楼主| 发表于 2009-9-10 08:38:04 | 显示全部楼层
没人回答么?
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-20 15:04

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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