使用例

コンペアマッチ割り込みで転送開始し、転送完了でフラグを立てる

 

[GUI設定例]

DMAコントローラ

Dmac

使用する

DmacChannel0

使用する

起動要因

CMT0 (CMI0 vect=28)

起動要因フラグ制御

起動要因フラグをクリアする

 

 

 

転送モード

ノーマルモード

 

 

 

転送データサイズ

8ビット

 

 

 

転送回数

1

 

 

 

総転送データサイズ

1バイト

 

 

 

転送元アドレス

0x00000100(アドレス固定)

 

 

 

転送先アドレス

0x00000110(アドレス固定)

 

 

 

割り込み設定(DMAC0I)

使用する

 

 

 

転送終了割り込みを許可

使用する

 

 

 

優先順位

レベル15

 

コンペアマッチタイマ

CMT0

使用する

コンペアマッチタイマ動作設定

使用する

クロック設定

PCLK/32

インターバル時間設定

100ms (実際の値:100)

 

 

 

コンペアマッチ割り込みを許可(CMI0)

使用する

 

 

 

優先順位

レベル15

 

 

 

 

[API設定例]

r_cg_main.c

void main(void)

{

       R_MAIN_UserInit();

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

       /* Start CMT channel 0 counter */

       R_CMT0_Start();

 

       /* Enable the DMAC0 activation */

       R_DMAC0_Start();

 

       while (1U)

       {

              ;

       }

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

}

 

r_cg_dmac_user.c

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

volatile uint8_t g_dmac0_f;

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

 

void R_DMAC_Create_UserInit(void)

{

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

       /* Clear the flag */

       g_dmac0_f = 0U;

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

}

 

static void r_dmac0_callback_transfer_end(void)

{

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

       /* Set the flag */

       g_dmac0_f = 1U;

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

}