Changes between Version 37 and Version 38 of FAQ


Ignore:
Timestamp:
Apr 19, 2020, 9:46:29 PM (4 years ago)
Author:
ertl-yutaka
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • FAQ

    v37 v38  
    8686
    8787==== Q:周期的な処理を追加するためには、どうすれば良いでしょうか? ====
    88 A:(1) app.cfg ファイルに、EV3_CRE_CYCを使って周期ハンドラを作成します。以下の例に従って、cfgファイルに追記してください。
     88A:(1) app.cfg ファイルに、CRE_CYC(β7-3以前は,EV3_CRE_CYC)を使って周期ハンドラを作成します。以下の例に従って、cfgファイルに追記してください。
     89
     90【v1.0の場合】
     91{{{
     92DOMAIN(TDOM_APP) {
     93    ...
     94    CRE_CYC(TEST_EV3_CYC1, { TA_STA, { TNFY_HANDLER, {0, test_ev3_cychdr} }, 500 * 1000, 0U });
     95    ...
     96}
     97ATT_MOD(app.o)
     98}}}
     99EV3_CRE_CYCの各パラメータの意味は、以下の通りです。
     100
     101 * 【第1パラメータ】TEST_EV3_CYC1:周期ハンドラの名称(実際にはID番号だが、コンフィギュレータによって、ここで指定した名称のマクロが自動的に定義される)
     102 * 【第2パラメータ】TA_STA:周期ハンドラの属性。
     103   * TA_STAを指定すると、アプリケーションの起動時に周期処理も開始する。
     104   * TA_NULLを指定すると、アプリケーションでsta_cyc(TEST_EV3_CYC1)を呼び出すまで動作しない。
     105 * 【第3パラメータ】TNFY_HANDLER:タイムイベントハンドラの呼出しによる通知(通知処理モード)
     106 * 【第4パラメータ】0:周期ハンドラに渡される値(拡張情報)
     107 * 【第5パラメータ】test_ev3_cychdr:周期ハンドラの先頭番地(周期的に実行される関数)。Cファイルに同名の関数を定義してください((2)を参照のこと)。
     108 * 【第6パラメータ】500000:起動周期(EV3RT v1.0の場合、単位はマイクロ秒で指定)
     109 * 【第7パラメータ】0:起動位相。周期ハンドラの動作開始を指定してから、最初に周期ハンドラが呼ばれるまでの相対時間。
     110   * 属性にTA_STAを指定して、起動位相に0を指定するとシステムが起動して最初のタイムティックが発生した時に動作する。
     111
     112詳細は、TOPPERS第3世代カーネル統合仕様書のCRE_CYCの説明,及びp.266 4.6 時間管理機能を参照してください。
     113
     114【β7-3以前の場合】
    89115
    90116{{{