⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dma.c

📁 cc1110,cc2510透传代码,IAR环境的
💻 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 + -