本文基于合众达的dsp试验箱,采集实验箱上信号发生器产生的信号,并对信号进行fft变换,通过ccs观察结果。
//初始化cputimer InitCpuTimers();
/*设置中断服务程序入口地址*/ EALLOW; // This is needed to write to EALLOW protected registers PieVectTable.TINT2 = &ISRTimer2; //取ISRTimer2地址赋给中断 //向量TINT2(CPU-Timer2) PieVectTable.ADCINT = &ad; //取ad地址赋给中断向量ADCINT EDIS; // This is needed to disable write to EALLOW protected //registers /*开中断*/
IER |= M_INT1;//ADC中断 ,使能第一组中断!!
//已经定义"#define M_INT1 0x0001" EINT; // Enable Global interrupt INTM
ERTM; // Enable Global realtime interrupt DBGM adconvover=0; DINT;
/*设置CPU*/
ConfigCpuTimer(&CpuTimer2, 150, 22); StartCpuTimer2(); //已经定义 "#define StartCpuTimer2() //CpuTimer2Regs.TCR.bit.TSS = 0" /*开中断*/
IER |= M_INT14; // 使能第14组中断(CPU定时器2(RTOS))!! //已经定义"#define M_INT14 0x2000" ; IER是CPU中断使能寄存器 EINT; InitAdc();
for(;;){ //等待AD采样结束!!!
if (adconvover==1){ //adconvover==1表示AD采样 // 结束!!!见ad中断子程序 for(i=0;i<128;i++){ INPUT[i]=Ad_data[i];} for(i=0;i<N;i++) //i<128 {
fWaveR[i]=INPUT[i]; fWaveI[i]=0.0; w[i]=0.0; }
Mum=(int)(0.5+log(N)/log(2)); //N=2^Mum FFT(fWaveR,fWaveI);
for(i=0;i<N;i++)DATA[i]=w[i];//功率谱 } adconvover=0; } }
一般而言,编写一个能运行在操作系统上的程序,都需要一个主函数。主函数意味着建立一个独立进程,且该进程成为了程序的入口,对其它各
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库基于dsp的快速傅里叶变换程序设计(15)在线全文阅读。
相关推荐: