📄 dma.c
字号:
/*-------------------------------------*
* 头文件 *
*---------------------------------------------------------------------------*/
#include "includes.h"
/*-------------------------------------*
* 变量定义 *
*---------------------------------------------------------------------------*/
static DMA_DESC dmaConfig[2]; // Struct for the DMA configuration
/*-------------------------------------*
* 函数定义 *
*---------------------------------------------------------------------------*/
void dmaRadioSetup(){
dmaConfig[0].PRIORITY = DMA_PRI_LOW;
dmaConfig[0].M8 = DMA_M8_USE_8_BITS;
dmaConfig[0].IRQMASK = DMA_IRQMASK_DISABLE;
dmaConfig[0].TRIG = DMA_TRIG_RADIO;
dmaConfig[0].TMODE = DMA_TMODE_SINGLE;
dmaConfig[0].WORDSIZE = DMA_WORDSIZE_BYTE;
SET_WORD(dmaConfig[0].SRCADDRH, dmaConfig[0].SRCADDRL, radioPktBuffer);
SET_WORD(dmaConfig[0].DESTADDRH, dmaConfig[0].DESTADDRL, &X_RFD);
dmaConfig[0].VLEN = DMA_VLEN_FIRST_BYTE_P_1;
SET_WORD(dmaConfig[0].LENH, dmaConfig[0].LENL, (PACKET_LENGTH + 1));
dmaConfig[0].SRCINC = DMA_SRCINC_1;
dmaConfig[0].DESTINC = DMA_DESTINC_0;
SET_WORD(DMA0CFGH, DMA0CFGL, &dmaConfig[0]);
dmaConfig[1].PRIORITY = DMA_PRI_LOW;
dmaConfig[1].M8 = DMA_M8_USE_8_BITS;
dmaConfig[1].IRQMASK = DMA_IRQMASK_DISABLE;
dmaConfig[1].TRIG = DMA_TRIG_RADIO;
dmaConfig[1].TMODE = DMA_TMODE_SINGLE;
dmaConfig[1].WORDSIZE = DMA_WORDSIZE_BYTE;
SET_WORD(dmaConfig[1].SRCADDRH, dmaConfig[1].SRCADDRL, &X_RFD);
SET_WORD(dmaConfig[1].DESTADDRH, dmaConfig[1].DESTADDRL, radioPktBuffer);
dmaConfig[1].VLEN = DMA_VLEN_FIRST_BYTE_P_3;
SET_WORD(dmaConfig[1].LENH, dmaConfig[1].LENL, (PACKET_LENGTH + 3));
dmaConfig[1].SRCINC = DMA_SRCINC_0;
dmaConfig[1].DESTINC = DMA_DESTINC_1;
SET_WORD(DMA1CFGH, DMA1CFGL, &dmaConfig[1]);
return;
}
void RxdmaRadioSetup(){
dmaConfig[1].PRIORITY = DMA_PRI_LOW;
dmaConfig[1].M8 = DMA_M8_USE_8_BITS;
dmaConfig[1].IRQMASK = DMA_IRQMASK_DISABLE;
dmaConfig[1].TRIG = DMA_TRIG_RADIO;
dmaConfig[1].TMODE = DMA_TMODE_SINGLE;
dmaConfig[1].WORDSIZE = DMA_WORDSIZE_BYTE;
SET_WORD(dmaConfig[1].SRCADDRH, dmaConfig[1].SRCADDRL, &X_RFD);
SET_WORD(dmaConfig[1].DESTADDRH, dmaConfig[1].DESTADDRL, radioPktBuffer);
dmaConfig[1].VLEN = DMA_VLEN_FIRST_BYTE_P_3;
SET_WORD(dmaConfig[1].LENH, dmaConfig[1].LENL, (PACKET_LENGTH + 3));
dmaConfig[1].SRCINC = DMA_SRCINC_0;
dmaConfig[1].DESTINC = DMA_DESTINC_1;
SET_WORD(DMA1CFGH, DMA1CFGL, &dmaConfig[1]);
return;
}
void TxdmaRadioSetup(){
dmaConfig[0].PRIORITY = DMA_PRI_LOW;
dmaConfig[0].M8 = DMA_M8_USE_8_BITS;
dmaConfig[0].IRQMASK = DMA_IRQMASK_DISABLE;
dmaConfig[0].TRIG = DMA_TRIG_RADIO;
dmaConfig[0].TMODE = DMA_TMODE_SINGLE;
dmaConfig[0].WORDSIZE = DMA_WORDSIZE_BYTE;
SET_WORD(dmaConfig[0].SRCADDRH, dmaConfig[0].SRCADDRL, radioPktBuffer);
SET_WORD(dmaConfig[0].DESTADDRH, dmaConfig[0].DESTADDRL, &X_RFD);
dmaConfig[0].VLEN = DMA_VLEN_FIRST_BYTE_P_1;
SET_WORD(dmaConfig[0].LENH, dmaConfig[0].LENL, (PACKET_LENGTH + 1));
dmaConfig[0].SRCINC = DMA_SRCINC_1;
dmaConfig[0].DESTINC = DMA_DESTINC_0;
SET_WORD(DMA0CFGH, DMA0CFGL, &dmaConfig[0]);
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -