nobody wrote on Wednesday, March 16, 2005:
Hi,
I try to use FreeRTOS on a ATMega64.
I got a task like:
void ManTask( void *pvParameters )
{
while(1)
{
if(intflag)
{
printf_P( PSTR("%.2X %.2X %.2X %.2X %.2X %.2X %.2X %.2X %.2X \r\n"),
manval, mantemp[0], mantemp[1], mantemp[2], mantemp[3],
mantemp[4], mantemp[5], mantemp[6], mantemp[7] );
intflag = 0;
vTaskDelay( portTICK_RATE_MS * 100 );
TIMSK |= _BV(TICIE1);
}
else
vTaskDelay( portTICK_RATE_MS * 5 );
}
}
Hope this is readable
In this case, printf sends lot of garbage.
If I split the long printf for giving out only one value
in a for() loop it works better.
Playing around with the tasks stack value changes something.
But it still doesn’t work.
How do i calculate the stack size for a task?
How do I calculate the portTOTAL_HEAP_SIZE ?
And how is printf coming in?
Thanks!