spi_test.c

来自「TMS320F2812DSP与ADS8361的接口程序」· C语言 代码 · 共 84 行

C
84
字号
//0x0f  非自测模式,内部SIMO SOMI 不连接 ,需通过外部相连

#include "DSP28_Device.h"
//#include "DSP28_Spi.h"

unsigned int Spi_VarRx[100];
unsigned int i,j;
unsigned int Spi_ValueRx;
float	Spi_Value;
interrupt void ISRSciaTx(void);
//interrupt void ISRSciaRx(void);
//interrupt void SPIRXINTA_ISR(void);
void main(void)
{
	/*初始化系统*/
	InitSysCtrl();
	/* 关中断 */
	DINT;
	IER = 0x0000;
	IFR = 0x0000;
	/* 初始化PIE控制寄存器 */
	InitPieCtrl();
	/* 初始化PIE参数表 */
	InitPieVectTable();	
	/* 初始化外设寄存器 */
	InitPeripherals();
	/* 初始化SPI模块 */
	
    InitSpi();
    	for(i = 0; i < 100; i++)
    	{
    		Spi_VarRx[i] = 0;
    	}
    	i = 0;
    	j = 0;
    	
    #if	Spi_Int
	EALLOW;	// This is needed to write to EALLOW protected registers
//	PieVectTable.SPITXINTA = &ISRSciaTx;
//	PieVectTable.SPIRXINTA = &ISRSciaRx;
	EDIS;   // This is needed to disable write to EALLOW protected registers
	
	/* 设置IER寄存器 */
	IER |= M_INT6;
	#endif
	
	/* 开中断 */
	EINT;   // Enable Global interrupt INTM
	ERTM;	// Enable Global realtime interrupt DBGM
	

    GpioDataRegs.GPACLEAR.bit.GPIOA15 = 1;// RD_CONVST置0   wait rising edge
	ADS8361_CS(0);
    ADS8361_M1(0);
    ADS8361_M0(0);    
    
    GpioDataRegs.GPFDAT.bit.GPIOF14 =0;   //LDAC rising edge
    asm (" RPT #10 || NOP");              // 延时30个时钟周期

	SpiaRegs.SPITXBUF = 0;
	SpiaRegs.SPITXBUF = 0;
	
//	GpioDataRegs.GPASET.bit.GPIOA15 = 1;// RD_CONVST置0   wait rising edge
	ADS8361_RDCONVST();	//start convst
	
    GpioDataRegs.GPFDAT.bit.GPIOF14 =1; //LDAC rising edge   			
    GpioDataRegs.GPFDAT.bit.GPIOF14 =1; //LDAC rising edge   	

	for(;;);

} 	


interrupt void ISRSciaTx(void)
{
	PieCtrl.PIEACK.bit.ACK6 = 1;	
//	GpioDataRegs.GPFDAT.bit.GPIOF14 =0; //LDAC rising edge
	EINT;
}

//===========================================================================
// No more.
//===========================================================================

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?