xTaskGetTickCount during ISR

I am working with the MSP430 port and have a problem with the xTaskGetTickCount() function. I want to measure a time between two edges and call the function xTaskGetTickCount() to get the actual time. If I do this from a Interrupt Service Routine the system is not working. Below is the function from the file task.c listed. portTickType xTaskGetTickCount( void ) { portTickType xTicks; /* Critical section required if running on a 16 bit processor. */ taskENTER_CRITICAL();     {         xTicks = xTickCount;     }     taskEXIT_CRITICAL();     return xTicks; } If I comment out taskENTER_CRITICAL() and taskEXIT_CRITICAL() all  works fine. Is the comment with 16 bit processor always correct ? I think, this comment and the functions are only necessary, if: - running on a 8 bit processor or - running on a 16 bit processor with configUSE_16_BIT_TICKS 0 Klaus

xTaskGetTickCount during ISR

Your assumption is correct.  The comment is a bit historical.  As long as read access to the variable is atomic then you don’t need the critical section.  From within an ISR you definitely should not use a critical section. You could provide another function xTaskGetTickCountFromISR() which does the same without the critical section to be totally sure. Regards.