Я использую MSP430f5438 с версией 5.4 FreeRTOS.
У меня странная проблема, которую я не могу понять.
Обычно, когда я устанавливаю configTICK_RATE_HZ на разные значения, светодиод мигает быстрее или медленнее; это должно остаться той же самой скоростью. Он мигает медленнее, чем выше я устанавливаю configTICK_RATE_HZ, и тем быстрее, когда я устанавливаю TICK_RATE ниже.
vTaskDelayUntil (& xLastFlashTime, xFlashRate); таков, что светодиод должен мигать только раз в секунду, независимо от того, что такое configTICK_RATE_HZ. Я прошел и проверил xFlashRate, чтобы убедиться. Его всегда = в configTICK_RATE_HZ.
Код:
xFlashRate = ledFLASH_RATE_BASE;//my flash base rate is 1000ms
xFlashRate /= portTICK_RATE_MS; //so xFlashrate = whatever configTICK_RATE_HZ equals
/* We need to initialise xLastFlashTime prior to the first call to vTaskDelayUntil().*/
xLastFlashTime = xTaskGetTickCount();
for(;;) {
vTaskDelayUntil( &xLastFlashTime, xFlashRate ); vParTestToggleLED( uxLED );
flashled();//this should happen every 1 second.
}
Светодиод мигает с периодом, превышающим 1 секунду, когда я устанавливаю configtick_rate_hz на 1000, и светодиод мигает с периодом, значительно меньшим, чем 1сек, когда я устанавливаю частоту тиков на значение, меньшее ~ 200
configTICK_RATE_HZ не должен влиять на время мигания светодиода.
Я понимаю, что необходима дополнительная информация, и с готовностью предоставлю любые фрагменты кода, необходимые для помощи.