예제 #1
0
void DmaAbort(DMA_CHID_T dmaCh)
{
    Chip_DMA_DisableChannel(LPC_DMA, dmaCh);
    while ((Chip_DMA_GetBusyChannels(LPC_DMA) & (1 << dmaCh)) != 0) {}
    Chip_DMA_AbortChannel(LPC_DMA, dmaCh);
    Chip_DMA_EnableChannel(LPC_DMA, dmaCh);
}
예제 #2
0
/* Clear an error on a DMA channel */
static void dmaClearChannel(DMA_CHID_T ch) {
	Chip_DMA_DisableChannel(LPC_DMA, ch);
	while ((Chip_DMA_GetBusyChannels(LPC_DMA) & (1 << ch)) != 0) {}

	Chip_DMA_AbortChannel(LPC_DMA, ch);
	Chip_DMA_ClearErrorIntChannel(LPC_DMA, ch);
}