请问个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);
} 这是初始化定时器的,你可以根据你的实时系统的定时器情况进行修改的 首先谢谢你们的回复:
没错 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编辑过 现在问题就出在这,我的代码是1楼的格按理说是按第一种格式运行,但实际上运行的是第二种方式 这个代码有,就是按AVRX第一个例子测的,用仿值器(MKII) 没人用过吗?请回答 自己顶顶顶顶顶./emotion/em201.gif./emotion/em201.gif./emotion/em201.gif./emotion/em201.gif 【6楼】 newbie 说的正确.
页:
[1]