データ加算モードで配列データを加算し、“FFFFh”より大きくなったとき割り込みで加算結果を取得する
その後データ比較不一致モードに変更し、配列データに"000h"以外を検出した場合に割り込みを発生させる
[GUI設定例]
データ演算回路 |
||||
DOC |
使用する | |||
|
|
|
演算回路の動作モードを設定のための関数を生成 |
使用する |
|
|
|
動作モード |
データ加算モード |
|
|
|
比較基準値/加減演算結果初期値 |
0 |
|
|
|
データ演算回路割り込み(DOPCF)有効 |
使用する |
DOPCF 優先順位 (グループBL0) |
レベル15 |
割り込みコントローラ |
||||
ICU |
使用する | |||
|
|
Group |
|
使用する |
|
|
|
グループBL0 |
使用する |
グループBL0 優先順位 |
レベル15 |
[API設定例]
r_cg_main.c
/* Start user code for global. Do not edit comment generated here */
extern volatile uint16_t data[16];
volatile uint8_t cnt;
/* End user code. Do not edit comment generated here */
void main(void)
{
R_MAIN_UserInit();
/* Start user code. Do not edit comment generated here */
while (1U)
{
for (cnt = 0; cnt < 16U; cnt++)
{
/* Write new data to compare */
R_DOC_WriteData(data[cnt]);
}
}
/* End user code. Do not edit comment generated here */
}
r_cg_doc_user.c
/* Start user code for global. Do not edit comment generated here */
volatile uint16_t data[16];
volatile uint16_t result;
/* End user code. Do not edit comment generated here */
void r_doc_dopcf_interrupt(void)
{
/* Start user code. Do not edit comment generated here */
/* Get result */
R_DOC_GetResult((uint16_t *)&result);
/* Configure the operation mode of DOC */
R_DOC_SetMode(COMPARE_MISMATCH, 0x0000);
/* Clear DOPCI flag */
R_DOC_ClearFlag();
/* End user code. Do not edit comment generated here */
}