📄 复件 imu_gw.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 + -