FreeRTOS 5.4 버전의 MSP430f5438을 사용하고 있습니다.FreeRTOS configTICK_RATE_HZ
내가 알아낼 수없는 재미있는 문제가 있습니다.
기본적으로 configTICK_RATE_HZ를 다른 값으로 설정하면 LED가 더 빠르게 또는 느리게 깜박입니다. 그것은 동일한 비율을 유지해야합니다. 그것은 내가 configICK_RATE_HZ를 설정할수록 느리게 깜박이고, TICK_RATE를 낮게 설정하면 빠릅니다.
vTaskDelayUntil (& xLastFlashTime, xFlashRate); configTICK_RATE_HZ가 무엇이든 관계없이 LED가 1 초에 한 번만 점멸해야합니다. 나는 밟아서 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.
}
내가 1000에 configtick_rate_hz 내가 이하인 경우에 틱 속도를 설정 1 초보다 훨씬 적은 기간이 주도 깜박 설정 기간보다 1 초 이상을 가진 LED 점멸 ~ 200
configTICK_RATE_HZ는 LED 깜박임에 영향을 주어서는 안됩니다.
나는 더 많은 정보가 필요하다는 것을 알고 있으며 도움이 필요한 코드 조각을 쉽게 제공 할 것입니다.
나는 분명히해야한다고 생각합니다. 테스트가 configTICK_RATE_HZ를 참조하지만 코드가 configTICK_RATE_MS를 참조하고 ledFLASH_RATE_BASE에 값을 지정하지 않았습니다. 단어 RATE는 빈도를 의미하지만 MS는 마침표를 의미합니다. 무엇 이니? 가치는 무엇입니까? – Clifford
틱 주파수를 변경할 때 시스템 주파수가 변경되는 것에 대해 놀라지 않는 이유는 무엇입니까? – mocj
@mocj : 그는 다양한 틱 속도를 보상하기 위해 지연을 계산했다고 믿기 때문에 놀랐습니다. 그는하지 않았다. – Clifford