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

📄 复件 imu_gw.c

📁 c6713的源代码
💻 C
字号:
#include "IMU_GW.h"
///////////////////////////////////////////////////////////
//ADS8364
unsigned short ads8364_ready;		// Set when ADC frame is done
unsigned short ads8364_readNdx;		// A/D read index
unsigned long int ads8364_totalNdx;

unsigned short ADC_address[6];
short A0_temp[ADC_SAMPLE_SIZE];
short A1_temp[ADC_SAMPLE_SIZE];
short B0_temp[ADC_SAMPLE_SIZE];
short B1_temp[ADC_SAMPLE_SIZE];
short C0_temp[ADC_SAMPLE_SIZE];
short C1_temp[ADC_SAMPLE_SIZE];
float Ax;
float Ay;
float Az;
float Wx;
float Wy;
float Wz;
//volatile float* pAddr0;

///////////////////////////////////////
//TLV2548
unsigned short tlv2548_ready;
unsigned short tlv2548_readN;    
unsigned long int  tlv2548_totalNdx; 
unsigned short C_temp[ADC_SIZE];
float  T0,T1;
//volatile float* pAddr1;
//volatile unsigned short* pAddr1;

//////////////////////////////////////
//XR16L674
unsigned char buf[100];

//////////////////////////////////////
//test timer0
TIMER_Handle hTimer;
TIMER_Config MyConfig ;
unsigned int timer0_totalNdx;

//////////////////////////////////////
//time index
unsigned short int index;

void main()
{
	unsigned short i,tmp;
    for(i=0;i<ADC_SAMPLE_SIZE;i++)
    {
    	A0_temp[i]=0;A1_temp[i]=0;
    	B0_temp[i]=0;B1_temp[i]=0;
    	C0_temp[i]=0;C1_temp[i]=0;
    }
    
    Ax=0.0;
    Ay=0.0;
    Az=0.0;
    Wx=0.0;
    Wy=0.0;
    Wz=0.0;
    
    for(i=0;i<ADC_SIZE;i++)
    {
   	    C_temp[i]=0;
    }
    
    T0=0.0;
    T1=0.0;
    
    for(i=0;i<100;i++)
	{
		buf[i]=i;
	}
	
	index=0;
	
    //pAddr0 = (float*)(SDRAM_ADDR+0x200000);
    //pAddr1 = (float*)(SDRAM_ADDR+0x100000);
	//pAddr1 = (unsigned short*)(SDRAM_ADDR+0x100000);
	        
	//initial dsp
	CSL_init();
	CACHE_enableCaching(CACHE_CE00);
	CACHE_setL2Mode(CACHE_64KCACHE);
	
	IRQ_resetAll();
	// Use custom interrupt vectors
    //ISTP = (unsigned int)&intvectable;
	*(unsigned int*)_IRQ_EXTPOL_ADDR =0x0F;
	/*
    IRQ_hook(IRQ_EVT_EXTINT5,ext5_isr);
    IRQ_enable(IRQ_EVT_EXTINT5);
    IRQ_hook(IRQ_EVT_EXTINT6,ext6_isr);
    IRQ_enable(IRQ_EVT_EXTINT6);
    */
    IRQ_nmiEnable();
    IRQ_globalEnable();      
	   
  	//sdram flash test!!!
    pll_set();		
	sdram_test();
	flash_test();
	
	//ADS 8364 test!
	init_timer1();
	software_init_ADC();
	
	//TLV 2548 test!
	McBSP0_init();
	ADC_init();
	while (tlv2548_ready==0)
    {
    	ADC_init();
    }
    
    McBSP0_write(channel3);
    tmp = McBSP0_read();
	if(tmp){}
	
	//XR16L784
	Initialize_XR16LChip();
    Initialize_XR16L_Chan(0);
    //test!!!
	//XR16L_SendData(0,buf,6);
	
	//timer0
	init_timer0();
	hTimer = TIMER_open(TIMER_DEV0,TIMER_OPEN_RESET);//TIMER_DEV1
	TIMER_config(hTimer,&MyConfig);
	IRQ_hook(IRQ_EVT_XINT1,Timer0_isr);//IRQ_EVT_RINT1
    IRQ_enable(IRQ_EVT_TINT0);//IRQ_EVT_TINT1
    IRQ_hook(IRQ_EVT_EXTINT5,ext5_isr);
    IRQ_enable(IRQ_EVT_EXTINT5);
    IRQ_hook(IRQ_EVT_EXTINT6,ext6_isr);
    IRQ_enable(IRQ_EVT_EXTINT6);
	TIMER_start(hTimer);
	
	while(1)
	{
		if(ads8364_ready) 
		{
		    index++;
		    buf[0]=0xAA;
		    buf[1]=0x22;
		    memcpy(buf+2,&Ax,4);
		    memcpy(buf+6,&Ay,4);
		    memcpy(buf+10,&Az,4);
		    memcpy(buf+14,&Wx,4);
		    memcpy(buf+18,&Wy,4);
		    memcpy(buf+22,&Wz,4);
		    memcpy(buf+26,&T0,4);
		    memcpy(buf+30,&index,2);
		    buf[32]=0x00;
		    buf[33]=0x00;
			ads8364_ready = 0;
    		XR16L_SendData(0,buf,34);//发送函数
    		//Ax=0.0;Ay=0.0;Az=0.0;
    		//Wx=0.0;Wy=0.0;Wz=0.0;
		}
		if(tlv2548_ready)
		{	             
			tlv2548_ready = 0;
		}	
	}
}

⌨️ 快捷键说明

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