dmasetupchannel.c
来自「zigbee通信系统中使用芯片cc2430实现点对点通信的源码」· C语言 代码 · 共 48 行
C
48 行
/******************************************************************************
Filename: dmaSetUpChannel.c
Target: cc2430
Revised: 16/12-2005
Revision: 1.0
******************************************************************************/
#include <string.h>
#include "cul.h"
extern DMA_DESC /*__xdata*/ dmaChannel1to4[4];
extern DMA_TABLE_ENTRY /*__xdata*/ dmaTable[4];
//-----------------------------------------------------------------------------
// See cul.h for a description of this function.
//-----------------------------------------------------------------------------
BYTE culDmaSetUpChannel(DMA_DESC* pDmaDescriptor, BOOL immediately, FUNCTION* callBackFunction){
DMA_DESC* assignedDmaDescriptor = NULL;
UINT8 dmaChannelNumber = 0x00;
// Requesting an available DMA descriptor
assignedDmaDescriptor = culDmaAllocChannel(&dmaChannelNumber, callBackFunction);
// If all DMA channels are in use or an illegal channel number is assigned,the function returns.
if((assignedDmaDescriptor == NULL) || (dmaChannelNumber == 0x00)){
dmaChannelNumber = 0x00;
} else if(dmaChannelNumber > 0x04){
dmaChannelNumber = 0x00;
} else {
// Copying the DMA descriptor to the list of DMA descriptors.
memmove(assignedDmaDescriptor, pDmaDescriptor, 8);
// Arming the DMA channel in question
DMA_ARM_CHANNEL(dmaChannelNumber);
// If the transfer is to be performed ASAP, the channel is initiated.
if(immediately){
DMA_START_CHANNEL(dmaChannelNumber);
}
}
// Returning the number of the channel in use
return dmaChannelNumber;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?