天空的泡泡 发表于 2014-10-25 15:10 
我是采样一个200HZ的单频信号,现在出现的这样一个问题 就是信号有输入,显示就是没有转换输出来。因为不 ...
Uint16 SampleTable[BUF_SIZE];
void adc_init(void);
void read_adcresults();
void main()
{
InitSysCtrl();
DINT;
InitPieCtrl();
IER = 0x0000;
IFR = 0x0000;
InitPieVectTable();
adc_init();
AdcRegs.ADCTRL2.bit.SOC_SEQ1 =1;
while(1)
{
read_adcresults();
//DELAY_US(100000L);
}
}
void adc_init(void)
{
EALLOW;
#if (CPU_FRQ_150MHZ) // Default - 150 MHz SYSCLKOUT
#define ADC_MODCLK 0x3 // HSPCLK = SYSCLKOUT/2*ADC_MODCLK2 = 150/(2*3) = 25.0 MHz
#endif
#if (CPU_FRQ_100MHZ)
#define ADC_MODCLK 0x2 // HSPCLK = SYSCLKOUT/2*ADC_MODCLK2 = 100/(2*2) = 25.0 MHz
#endif
EDIS;
InitAdc();
EALLOW;
SysCtrlRegs.HISPCP.all = ADC_MODCLK; // HSPCLK = SYSCLKOUT/ADC_MODCLK
EDIS;
AdcRegs.ADCTRL1.bit.ACQ_PS = 0xf;
AdcRegs.ADCTRL3.bit.ADCCLKPS = 0x1;
AdcRegs.ADCTRL1.bit.SEQ_OVRD = 1;
AdcRegs.ADCMAXCONV.bit.MAX_CONV1 = 1;
AdcRegs.ADCTRL1.bit.SEQ_CASC = 1;
AdcRegs.ADCCHSELSEQ1.bit.CONV00 = 0x0;
AdcRegs.ADCTRL1.bit.CONT_RUN = 1;
}
void read_adcresults()
{ int i;
for(i=0;i<BUF_SIZE;i++)
{ AdcRegs.ADCTRL2.bit.RST_SEQ1 =1;
AdcRegs.ADCTRL2.bit.SOC_SEQ1 =1;
while(AdcRegs.ADCST.bit.INT_SEQ1 == 0);
AdcRegs.ADCST.bit.INT_SEQ1_CLR = 1;
SampleTable=AdcRegs.ADCRESULT0>>4;
}
}
|