FFT算法在单片机中的使用&&LCD12864驱动
if(temp>> x[k+B].real=x[k].real-product.real; x[k+B].img=x[k].img-product.img; x[k].real=x[k].real+product.real; x[k].img=x[k].img+product.img; } } } } void initw() //初始化旋转因子 { int i; for (i=0;i } void bitReverse() //比特反转 { int i,j=0; int k=0; int q=0; complex tmp3; for (i=0;i int tmp=i,tmp2=0,j; for(j=0;j<7;j++) tmp2+=((tmp>>j)&1)*(1<(6-j)); if(vis[i]==0) { tmp3=x[i]; x[i]=x[tmp2]; x[tmp2]=tmp3; vis[i]=1; vis[tmp2]=1; } } } void xian(uchar x,uchar y) { uchar i; for(i=63;i>=y;i--) point(x,i); } //主函数 void main(void) { uchar ii,y; float tmp; //端口初始化 DDRA=0xff; PORTA=0xff; DDRB=0xff; PORTB=0xff; DDRD=0xff; PORTD=0x00; delayms(20); delayms(20); LCMInit(); //LCM初始化 //液晶初始化 delayms(100); clear(0x00); heng(0); heng(63); su(0); su(127); for (ii=0;ii<20;ii++) { x[ii].real=3; x[ii].img=0; } for (ii=20;ii<128;ii++) { x[ii].real=0; x[ii].img=0; } initw(); bitReverse(); FFT(); for(ii=64;ii<128;ii++) { tmp=sqrt((x[ii].real*x[ii].real)+(x[ii].img*x[ii].img)); y= 63-(int)tmp; point(ii-64,y); xian(ii-64,y); } for(ii=0;ii<64;ii++) { tmp=sqrt((x[ii].real*x[ii].real)+(x[ii].img*x[ii].img)); y= 63-(int)tmp; point(ii+64,y); xian(ii+64,y); } while(1); }
FFT算法单片机LCD12864驱 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)
