コンペアマッチ割り込みで転送開始し、転送完了でフラグを立てる
[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 */
}