# MI_InitNDmaConfig

## 構文

  `#include <twl/mi.h>`
  `void MI_InitNDmaConfig( void );`

## 引数

なし。

## 返り値

なし。

## 説明

新規DMAの動作を制御するDMA config 構造体を初期化します。

この関数は、TWL モードで動作する時に、`OS_Init()` で呼び出されます。その後何度呼び出しても構いません。その都度初期化を行います。

DMA config 構造体とは DMAの動作APIで設定しきれないパラメータを入れておく場所です。実際のDMA の際にはその構造体を参照して動作を行います。構造体型は `MINDmaConfig` です。

DMA config 構造体で設定できるものは以下の値です。

メンバ名 | 説明 | 関係するレジスタ | 初期値
--- | --- | --- | ---
`intervalTimer` | ブロック転送のインターバルタイマーです。 | DMAxBCNT の d15-0 | `1`
`prescaler` | ブロック転送インターバルタイマーのプリスケーラです。 | DMAxBCNT の d17-16 | `MI_NDMA_INTERVAL_PS_1`
`blockWord` | ブロック転送ワード数です。 | DMAx_CNT の d19-16 | `MI_NDMA_BWORD_16`
`wordCount` | 転送ワード数です。 | DMAxWCNT | `MI_NDMA_AT_A_TIME`

`intervalTimer` と `prescaler` を設定する関数は `MI_SetNDmaInterval()` です。
現在の `intervalTimer` の設定を取得する関数は `MI_GetNDmaIntervalTimer()` です。
現在の `intervalPrescaler` の設定を取得する関数は `MI_GetNDmaIntervalPrescaler()` です。
`blockWord` を設定する関数は `MI_SetNDmaBlockWord()` です。
現在の `blockWord` の設定を取得する関数は `MI_GetNDmaBlockWord()` です。
`wordCount` を設定する関数は `MI_SetNDmaWordCount()` です。
現在の `wordCount` の設定を取得する関数は `MI_GetNDmaWordCount()` です。

この関数は、デフォルトで使用される構造体を設定するためのものですが、ユーザの用意した構造体に値をコピーしたり、逆にユーザの用意した構造体から値をコピーしたりすることが可能です。`MI_GetNDmaConfg()` , `MI_SetNDmaConfig()` を参照してください。

## 内部動作

ライブラリ内の構造体に値を設定するのみで、実際にレジスタをアクセスすることはありません。

## 参照

`MI_GetNDmaConfig, MI_SetNDmaConfig
`

## 履歴

2007/09/07 初版