使用例
ELCを使用して外部割り込みエッジ検出0でAD変換を開始し、変換結果を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) | |||
変換結果上限/下限値設定 |
ADLL≦ADCRH≦ADULで割り込み要求信号(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 */
}