使用例
データ加算モードで配列データを加算し、“FFFFh”より大きくなったとき割り込みで加算結果を取得する
その後データ比較不一致モードに変更し、配列データに"000h"以外を検出した場合に割り込みを発生させる
[GUI設定例]
データ演算回路 |
||||
DOC |
使用する | |||
DOC設定 |
使用する | |||
動作モード |
データ加算モード | |||
比較基準値/加減演算結果初期値 |
0xFFFF | |||
データ演算回路割り込み(INTDOC)有効 |
使用する | |||
INTDOC 優先順位 |
低 |
[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 */
static void __near r_doc_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 DOPCF flag */
R_DOC_ClearFlag();
/* End user code. Do not edit comment generated here */
}