FreeRTOS configTICK_RATE_HZ
Estou usando um MSP430f5438 com a versão 5.4 do FreeRTOS.
Estou tendo um problema engraçado que não consigo descobrir.
Basicamente, quando defino configTICK_RATE_HZ para valores diferentes, o LED pisca mais rápido ou mais devagar; deve permanecer a mesma taxa. Pisca mais devagar quanto mais alto eu definir configTICK_RATE_HZ e mais rápido quando eu definir TICK_RATE mais baixo.
vTaskDelayUntil (& xLastFlashTime, xFlashRate); é tal que o LED deve piscar apenas uma vez por segundo, independentemente do que seja o configTICK_RATE_HZ. Entrei e verifiquei o xFlashRate para ter certeza. É sempre = para o configTICK_RATE_HZ. Código:
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.
}
O led pisca com um período maior que 1 segundo quando configuro o configtick_rate_hz como 1000 e o led pisca com um período bem menor que 1s quando configuro a taxa de tick para algo menor que ~ 200
configTICK_RATE_HZ não deve afetar o tempo de piscamento do LED.
Sei que são necessárias mais informações e fornecerei rapidamente quaisquer trechos de código necessários para ajudar.