質問

私はFreeRTOSのバージョン5.4とMSP430f5438を使用しています。

私は、私が理解することはできません面白い問題を抱えています。

私は異なる値にconfigTICK_RATE_HZを設定する

は、基本的に、LEDは、高速または低速点滅します。それは同じレート滞在する必要があります。これは、高いIが低くTICK_RATEを設定したときに、私はより速くconfigTICK_RATE_HZを設定し、かつます。

遅く点滅します

vTaskDelayUntil(&xLastFlashTime、xFlashRate)。 LEDのみ関係なくconfigTICK_RATE_HZが何であるかを1秒に1回点滅してはならないようなものです。私は通じステップとを確認するためにxFlashRateをチェックします。 ITSは、常に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秒で主導点滅私は〜200

未満のものにダニ率を設定して1秒よりもはるかに少ない期間とLEDが点滅

configTICK_RATE_HZは、LED blinktimeに影響はありません。

私は情報が必要な多くを実現し、容易にコードスニペットを支援するために必要なものは何でも提供されます。

役に立ちましたか?

解決

RTOSティックは、タイマ割り込みによって生成されます。タイマーは、それが常に関係なく、あなたがあまりにもconfigTICK_RATE_HZを設定したもの400kHzの固定ダニを起こしていないこと(不正に)などを設定しました。点滅速度は、RTOSティック率が適切configTICK_RATE_HZで表されると仮定(portTICK_RATE_MS = 1000 / configTICK_RATE_HZ)の下で設定されているので、問題が続いた。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top