📄 example_281xspi_ffdlb.c
字号:
#include "DSP281x_Device.h" // DSP281x Headerfile Include File
#include "DSP281x_Examples.h"
//#include "DSP28_Globalprototypes.h" // DSP281x Examples Include File
#include "include.h"
extern char paTable[];
extern char paTableLen;
char rxBuffer[3];
char i=0;
char l,m,n;
char a[20];
char b[20];
char addr[20];
char len=3;
char status,pkt;
char start;
// Prototype statements for functions found within this file.
// interrupt void ISRTimer2(void);
void delay_loop(void);
void spi_init(void);
void main(void)
{
// Step 1. Initialize System Control:
// PLL, WatchDog, enable Peripheral Clocks
// This example function is found in the DSP281x_SysCtrl.c file.
InitSysCtrl();
// SysCtrlRegs.HISPCP.all=0x0001;
// SysCtrlRegs.LOSPCP.all=0x0002;
InitPieCtrl();
IER = 0x0000;
IFR = 0x0000;
InitPieVectTable();
EALLOW;
/*端口供电设置*/
GpioMuxRegs.GPAMUX.all=0x0000;
GpioMuxRegs.GPADIR.all=0xFFFF;
GpioDataRegs.GPADAT.all=0xFFFF;
GpioMuxRegs.GPDMUX.all=0x0000;
GpioMuxRegs.GPDDIR.all=0xFFFF;
GpioDataRegs.GPDDAT.all=0xFFFF; // Port F MUX - x000 0000 0000 1111
EDIS;
// Step 3. Clear all interrupts and initialize PIE vector table:
// Disable CPU interrupts
DINT;
spi_init();
delay_loop();
/*CC2500上电复位*/
TI_CC_PowerupResetCCxxxx();
/*配置CC2500芯片*/
writeRFSettings();
TI_CC_SPIWriteBurstReg(TI_CCxxx0_PATABLE,paTable,paTableLen);
// for(k=0;k<20;k++)
// {a[k]=0;b[k]=0;}
TI_CC_SPIStrobe(TI_CCxxx0_SRX);
while(1)
{
if(TI_CC_SPIReadStatus(TI_CCxxx0_PKTSTATUS)&0x0008)
{
RFReceivePacket(rxBuffer,&len);
if(rxBuffer[1]==0x0001) start=1;
if(start)
{
a[i]=rxBuffer[2];
b[i]=rxBuffer[1];
addr[i]=rxBuffer[0];
i++;
if(i==20)
{ i=0;start=0;}
}
}
TI_CC_SPIStrobe(TI_CCxxx0_SRX);
// status=TI_CC_SPIReadStatus(TI_CCxxx0_MARCSTATE);
}
}
// Step 7. Insert all local Interrupt Service Routines (ISRs) and functions here:
void delay_loop()
{
long i;
for (i = 0; i < 200; i++) {}
}
void spi_init()
{
SpiaRegs.SPICCR.bit.SPISWRESET=0;
SpiaRegs.SPICCR.bit.SPICHAR=7;
SpiaRegs.SPICCR.bit.CLKPOLARITY=0;
SpiaRegs.SPICCR.bit.SPILBK=0;
SpiaRegs.SPICTL.all =0x000E;
SpiaRegs.SPIBRR =0x007F;
SpiaRegs.SPIFFTX.bit.SPIFFENA=0;
EALLOW;
GpioMuxRegs.GPFMUX.bit.SPISIMOA_GPIOF0=1;
GpioMuxRegs.GPFMUX.bit.SPISOMIA_GPIOF1=1;
GpioMuxRegs.GPFMUX.bit.SPICLKA_GPIOF2=1;
GpioMuxRegs.GPFMUX.bit.SPISTEA_GPIOF3=0;
GpioMuxRegs.GPFDIR.bit.GPIOF0=1;
GpioMuxRegs.GPFDIR.bit.GPIOF1=0;
GpioMuxRegs.GPFDIR.bit.GPIOF2=1;
GpioMuxRegs.GPFDIR.bit.GPIOF3=1;
EDIS;
SpiaRegs.SPICCR.bit.SPISWRESET=1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -