portYIELD_FROM_ISR + atmega32

hi, this is the sample code from freertos website
, how do i use portYIEED_FROM_ISR with atmega32, i cant find this macro in the portable code,
or can i just use taskYIELD() macro inside an ISR ? /* Timer ISR */
void vTimerISR( void * pvParameters )
{
static unsigned portCHAR ucLocalTickCount = 0;
static signed portBASE_TYPE xHigherPriorityTaskWoken;     /* A timer tick has occurred. */
   
    … Do other time functions.
   
    /* Is it time for vATask() to run? */
    xHigherPriorityTaskWoken = pdFALSE;
    ucLocalTickCount++;
    if( ucLocalTickCount >= TICKS_TO_WAIT )
    {
        /* Unblock the task by releasing the semaphore. */
        xSemaphoreGiveFromISR( xSemaphore, &xHigherPriorityTaskWoken );
       
        /* Reset the count so we release the semaphore again in 10 ticks time. */
        ucLocalTickCount = 0;
    }
   
    /* If xHigherPriorityTaskWoken was set to true you
    we should yield.  The actual macro used here is
    port specific. */
    portYIELD_FROM_ISR( xHigherPriorityTaskWoken );
}

portYIELD_FROM_ISR + atmega32

portYIELD_FROM_ISR() does not exist for the 8 bit AVR – hence you cannot find it.  You can use taskYIELD() directly, but only as the last instruction in an interrupt handler. Take a look at the SIGNAL( SIG_UART_RECV ) function in FreeRTOS/Demo/AVR_ATMega323_WinAVR/serial/serial.c for a GCC example.  Alternatively take a look at __interrupt void SIG_UART_RECV( void ) in FreeRTOS/Demo/AVR_ATMega323_IAR/serial/serial.c for an IAR example. Regards.