I am using STM32 w/ FreeRTOS 5.1.2 When I call xTaskGetTickCount() from an ISR (specifically EXTI0), the application freezes up. The solution was to remove the taskENTER_CRITICAL(); and taskEXIT_CRITICAL(); calls from the xTaskGetTickCount() function, these are not needed on 32-bit anyway. My suggestion for future versions is a #IF to remove these calls on 32-bit architectures. Todd
See number 3 on the following page: http://www.freertos.org/FAQHelp.html Version 5.2.0 has removed critical sections from a few places where they were not necessary, however the type used to hold the tick count is configurable so the critical section remains there. It might be better to have a "get tick count from isr" function, or to just make the tick count accessible. Regards.
I agree that a "get tick count from isr" function would be beneficial. As an example, my application uses a hall sensor that measures RPM of a motor. Every rotation of the shaft generates a interrupt which measures the time since the last interrupt. I could imagine a few other situations were the "get tick from isr" would be helpful. Hopefully this can be implemented in a future version. Todd
Todd: in your case, I think you should use another timer in counter mode, maybe automatically triggered by the interrupt from the hall sensor. The system tick will typically have a quite low frequency (1ms), while you could easily get much more accurate information.
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.