使用例

ELCを使用して外部割り込みエッジ検出0AD変換を開始し、変換結果をRAMに格納後ELC終了

 

[GUI設定例]

イベントリンクコントローラ

使用する

ELC

使用する

AD 変換開始

使用する

イベント発生元

外部割り込みエッジ検出0

 

割り込み

使用する

INTP

使用する

INTP0

有効エッジ

立下りエッジ

優先順位

 

A/Dコンバータ

使用する

ADC

使用する

A/Dコンバータ動作設定

使用する

コンパレータ動作設定

許可

分解能設定

10ビット

VREF(+)設定

VDD

VREF(-)設定

VSS

トリガ・モード設定

ハードウェア・トリガ・ノーウエイト・モード

ハードウェア・トリガ・ノーウエイト・モード

ELC

動作モード設定

ワンショット・セレクト・モード

ANI0 - ANI23アナログ入力端子設定

ANI0

変換開始チャネル設定

ANI0

変換時間モード

標準1

変換時間

38 (1216/fCLK)(μs)

変換結果上限/下限値設定

ADLLADCRHADULで割り込み要求信号(INTAD)を発生

上限値(ADUL)

255

下限値(ADLL)

0

A/Dの割り込み許可(INTAD)

使用する

優先順位

 

 

[API設定例]

r_main.c

void main(void)

{

       R_MAIN_UserInit();

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

       /* Start the AD converter */

       R_ADC_Start();

 

       while (1U)

       {

              ;

       }

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

}

 

r_cg_adc_user.c

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

#include "r_cg_elc.h"

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

 

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

volatile uint16_t g_adc_value;

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

 

static void __near r_adc_interrupt(void)

{

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

       /* Stop the AD converter */

       R_ADC_Stop();

 

       /* Return the conversion result in the buffer */

       R_ADC_Get_Result((uint16_t *)&g_adc_value);

 

       /* Stop the ELC event resources */

       R_ELC_Stop(0x00000001U);

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

}