使用例(入力パルス間隔測定)

入力端子の立下りエッジの間隔を測定する

 

[波形例]

 

[GUI設定例]

タイマ

使用する

TAU0

使用する

Channel0

チャネル 0

入力パルス間隔測定

入力ソース設定

TI00

TI00測定可能なパルス間隔

0.125 (μs) < TI00 < 8.192 (ms)

TI00端子入力信号のノイズ・フィルタ使用

使用しない

カウント開始時にINTTM00発生する

使用しない

入力エッジ設定

立下りエッジ

タイマ・チャネル0のキャプチャ完了(INTTM00)

使用する

優先順位

備考              カウント・クロックの周期は、「TI00測定可能なパルス間隔」で選択した範囲の最小値の1/2となります。この設定では、0.0625usecとなります。

 

 

[API設定例]

r_main.c

void main(void)

{

       R_MAIN_UserInit();

       /* Start user code. Do not edit comment generated here */

       /* Start TAU0 channel 0 counter */

       R_TAU0_Channel0_Start();

 

       while (1U)

       {

              ;

       }

       /* End user code. Do not edit comment generated here */

}

 

r_cg_timer_user.c

/* Start user code for global. Do not edit comment generated here */

volatile uint32_t g_width = 0UL;

/* End user code. Do not edit comment generated here */

 

static void __near r_tau0_channel0_interrupt(void)

{

       if ((TSR00 & _0001_TAU_OVERFLOW_OCCURS) == 1U)    /* overflow occurs */

       {

              g_tau0_ch0_width = (uint32_t)(TDR00 + 1U) + 0x10000U;

       }

       else

       {

              g_tau0_ch0_width = (uint32_t)(TDR00 + 1U);

       }

 

       /* Start user code. Do not edit comment generated here */

       /* Get TAU0 channel 0 input pulse width. Pulse width(usec) = (Period of count clock(usec) * g_width) */

       R_TAU0_Channel0_Get_PulseWidth((uint32_t *)&g_width);

       /* End user code. Do not edit comment generated here */

}