#include <twl/mi.h>void MI_SetNDmaInterval( u32 ndmaNo, u32 intervalTimer, u32 prescaler );
| ndmaNo | DMA番号 (0〜3) |
| intervalTimer | ブロック転送インターバル値 (0〜0xFFFF) |
| prescaler | プリスケーラ (MI_NDMA_INTERVAL_PS_n) |
なし。
TWLの新規DMAが動作する際の、ブロック転送インターバル値とプリスケーラを設定します。
設定されるのは、内部で持っているDMA config 構造体 (MINDmaConfig) の値で、ユーザが別途指定しない限り、以降その値が使用されます。対象となるDMAを ndmaNo の引数で指定します。
intervalTimer はダウンカウンタになっています。値が大きいほどインターバルは長くなります。0の場合は、転送ワード数分までブロックDMAを連続して実行します。
prescaler はカウンタのプリスケーラで、以下の値を取ります。
| 値 | 意味 |
|---|---|
MI_NDMA_INTERVAL_PS_1 |
システムクロック(33.514MHz) |
MI_NDMA_INTERVAL_PS_4 |
システムクロックの4分周 |
MI_NDMA_INTERVAL_PS_16 |
システムクロックの16分周 |
MI_NDMA_INTERVAL_PS_64 |
システムクロックの64分周 |
なお、DMAイネーブルフラグが1のときは、変更が無視されます。
内部のDMA config 構造体に値をセットします。これは実際のDMA動作時に、DMAxBCNT レジスタに設定されます。
MI_GetNDmaIntervalTimer, MI_GetNDmaIntervalPrescaler
2007/09/07 初版