9810956 发表于 2006-11-2 11:00:11

请问个AVRX RTOS代码运行的问题

为什么以下硬件初始化代码每次均运行

   MCUCR = _BV(SE);      // Initialize Timer Hardware

   TCNT0 = TCNT0_INIT;

   TCCR0 = TMC8_CK256;

   TIMSK = _BV(TOIE0);





int main(void)

{

AvrXSetKernelStack(0);



        wdt_disable();

       

//DDRA=0xFF;

//PORTA=0xFF;



   MCUCR = _BV(SE);      // Initialize Timer Hardware

   TCNT0 = TCNT0_INIT;

   TCCR0 = TMC8_CK256;

   TIMSK = _BV(TOIE0);    // Enable Timer overflow interrupt

   

   AvrXRunTask(&task1Tcb);

   AvrXRunTask(&task2Tcb);

   AvrXRunTask(&task3Tcb);

   Epilog();

        while(1);

   

}

newbie 发表于 2006-11-2 11:11:04

zlf667788 发表于 2006-11-2 11:12:39

这是初始化定时器的,你可以根据你的实时系统的定时器情况进行修改的

9810956 发表于 2006-11-2 11:34:42

首先谢谢你们的回复:



没错 OS的时基由T0提供



可能是我没说清楚



正常运行应是这种格式:



int main(void)

{

MCUCR = _BV(SE);      // Initialize Timer Hardware

   TCNT0 = TCNT0_INIT;

   TCCR0 = TMC8_CK256;

   TIMSK = _BV(TOIE0);

   while(1)

    {

       AvrXRunTask(&task1Tcb);

       AvrXRunTask(&task2Tcb);

       AvrXRunTask(&task3Tcb);

       Epilog();

    }

}

但现运行的格式是:

如果这种运行格式的代码正确,请问那硬件初始化代码放那?

int main(void)

{

   while(1)

    {

       MCUCR = _BV(SE);      // Initialize Timer Hardware

       TCNT0 = TCNT0_INIT;

       TCCR0 = TMC8_CK256;

       TIMSK = _BV(TOIE0);

       AvrXRunTask(&task1Tcb);

       AvrXRunTask(&task2Tcb);

       AvrXRunTask(&task3Tcb);

       Epilog();

    }

}


-----此内容被9810956于2006-11-02,11:36:44编辑过

newbie 发表于 2006-11-2 11:44:22

9810956 发表于 2006-11-2 13:40:24

现在问题就出在这,我的代码是1楼的格按理说是按第一种格式运行,但实际上运行的是第二种方式

newbie 发表于 2006-11-2 13:47:20

9810956 发表于 2006-11-2 14:06:20

这个代码有,就是按AVRX第一个例子测的,用仿值器(MKII)

9810956 发表于 2006-11-2 21:39:42

没人用过吗?请回答

9810956 发表于 2006-11-3 11:59:05

自己顶顶顶顶顶./emotion/em201.gif./emotion/em201.gif./emotion/em201.gif./emotion/em201.gif

ml07077 发表于 2006-11-3 21:25:01

【6楼】 newbie 说的正确.
页: [1]
查看完整版本: 请问个AVRX RTOS代码运行的问题