Everything

R_TAUm_Channeln_Set_SoftwareTriggerOn

ワンショット・パルス出力のためのトリガ(ソフトウェア・トリガ)を発生させます。

 

[指定形式]

void       R_TAUm_Channeln_Set_SoftwareTriggerOn ( void );

備考           mはユニット番号を、n はチャネル番号を意味します。

 

[引数]

なし

 

[戻り値]

なし

 

 

 

使用例(インターバル・タイマ)

一定間隔で割り込み関数に入り、その回数をカウントする

 

[波形例]

 

[GUI設定例]

タイマ

使用する

TAU0

使用する

Channel0

チャネル 0

インターバル・タイマ

インターバル時間(16ビット)

100μs (実際の値:100)

カウント開始時にINTTM00割り込みを発生する

使用しない

タイマ・チャネル0のカウント完了で割り込み発生(INTTM00)

使用する

優先順位 (INTTM00)

 

 

[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 uint8_t g_cnt = 0U;

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

 

static void __near r_tau0_channel0_interrupt(void)

{

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

       /* Count INTTM00 */

       g_cnt++;

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

}

 

 

使用例(方形波出力)

一定間隔でトグル動作を行い,デューティ50%の方形波を出力する

 

[波形例]

 

[GUI設定例]

タイマ

使用する

TAU0

使用する

Channel0

チャネル 0

方形波出力

方形波幅

100μs (実際の値:100)

カウント開始時にINTTM00を発生し,タイマ出力を反転する

使用しない

初期出力値

0

タイマ・チャネル0のカウント完了で割り込み発生(INTTM00)

使用する

優先順位 (INTTM00)

 

 

[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 */

}

 

 

使用例(外部イベント・カウンタ)

立ち下がりエッジ100回毎にカウントする

 

[波形例]

 

[GUI設定例]

タイマ

使用する

TAU0

使用する

Channel0

チャネル 0

外部イベント・カウンタ

TI00入力可能な最大周波数

16000000 (Hz)

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

使用しない

外部イベント選択

TI00 立下りエッジ

カウント値

100

タイマ・チャネル0のカウント完了で割り込み発生(INTTM00)

使用する

優先順位

 

 

[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 uint8_t g_cnt = 0U;

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

 

static void __near r_tau0_channel0_interrupt(void)

{

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

       /* Count INTTM00 */

       g_cnt++;

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

}

 

 

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

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

 

[波形例]

 

[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 */

}