# MI_InitNDmaConfig

## Syntax

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

## Arguments

None.

## Return Values

None.

## Description

Initializes the DMA config structure that controls the behavior of the new DMA.

This function is called within `OS_Init()` when the system is running in TWL mode. It can be called any number of times after that without issue. Initialization is done each time.

The DMA config structure is where parameters are stored that can't be set with the DMA operation API. During actual DMA, the system will refer to this structure and operate accordingly. The structure is of type `MINDmaConfig`.

The following values can be configured in the DMA config structure.

Member Name | Description | Related Register | Default Values
--- | --- | --- | ---
`intervalTimer` | Interval timer for block transfers. | d15-0 in DMAxBCNT | `1`
`prescaler` | Prescaler of interval timer for block transfers. | d17-16 in DMAxBCNT | `MI_NDMA_INTERVAL_PS_1`
`blockWord` | Number of words in the block transfer. | d19-16 in DMAx_CNT | `MI_NDMA_BWORD_16`
`wordCount` | Number of words in the transfer. | DMAxWCNT | `MI_NDMA_AT_A_TIME`

`MI_SetNDmaInterval()` is the function used to set `intervalTimer` and `prescaler`.
`MI_GetNDmaIntervalTimer()` is the function used to get the current `intervalTimer` setting.
`MI_GetNDmaIntervalPrescaler()` is the function used to get the current `intervalPrescaler` setting.
`MI_SetNDmaBlockWord()` is the function used to set `blockWord`.
`MI_GetNDmaBlockWord()` is the function used to get the current `blockWord` setting.
`MI_SetNDmaWordCount()` is the function used to set `wordCount`.
`MI_GetNDmaWordCount()` is the function used to get the current `wordCount` setting.

Although this function is used to configure the structure that is used by default, developers can copy the values from this structure to to structures of their own creation, or vice versa. Refer to the `MI_GetNDmaConfig` and `MI_SetNDmaConfig` functions for more information about this.

## Internal Operation

Only configures values within the library's internal structure, and does not access the actual registers.

## See Also

`MI_GetNDmaConfig, MI_SetNDmaConfig
`

## Revision History

2007/09/07 Initial version.

CONFIDENTIAL