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

📄 fftbook.lis

📁 在ICCAVR 环境实现的fft,
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 055E 0A93              st -y,R16
 0560 9A92              st -y,R9
 0562 8A92              st -y,R8
 0564 7A92              st -y,R7
 0566 6A92              st -y,R6
 0568 0E940000          xcall empy32fs
 056C 0E940000          xcall sub32f
 0570 0E940000          xcall fp2int
 0574 FC01              movw R30,R24
 0576 1183              std z+1,R17
 0578 0083              std z+0,R16
 057A                   .dbline 37
 057A           ;     dataI[k+b]=TI+temp*sin(2*PI*p/16)-dataI[k+b]*cos(2*PI*p/16);
 057A 00E0              ldi R16,<L3
 057C 10E0              ldi R17,>L3
 057E 0E940000          xcall lpm32
 0582 3A93              st -y,R19
 0584 2A93              st -y,R18
 0586 1A93              st -y,R17
 0588 0A93              st -y,R16
 058A 00914600          lds R16,_p
 058E 10914700          lds R17,_p+1
 0592 0E940000          xcall int2fp
 0596 3A93              st -y,R19
 0598 2A93              st -y,R18
 059A 1A93              st -y,R17
 059C 0A93              st -y,R16
 059E 0E940000          xcall empy32fs
 05A2 00E0              ldi R16,<L4
 05A4 10E0              ldi R17,>L4
 05A6 0E940000          xcall lpm32
 05AA 3A93              st -y,R19
 05AC 2A93              st -y,R18
 05AE 1A93              st -y,R17
 05B0 0A93              st -y,R16
 05B2 0E940000          xcall div32f
 05B6 0E940000          xcall _sin
 05BA 1801              movw R2,R16
 05BC 2901              movw R4,R18
 05BE 00E0              ldi R16,<L3
 05C0 10E0              ldi R17,>L3
 05C2 0E940000          xcall lpm32
 05C6 3A93              st -y,R19
 05C8 2A93              st -y,R18
 05CA 1A93              st -y,R17
 05CC 0A93              st -y,R16
 05CE 00914600          lds R16,_p
 05D2 10914700          lds R17,_p+1
 05D6 0E940000          xcall int2fp
 05DA 3A93              st -y,R19
 05DC 2A93              st -y,R18
 05DE 1A93              st -y,R17
 05E0 0A93              st -y,R16
 05E2 0E940000          xcall empy32fs
 05E6 00E0              ldi R16,<L4
 05E8 10E0              ldi R17,>L4
 05EA 0E940000          xcall lpm32
 05EE 3A93              st -y,R19
 05F0 2A93              st -y,R18
 05F2 1A93              st -y,R17
 05F4 0A93              st -y,R16
 05F6 0E940000          xcall div32f
 05FA 2F92              push R2
 05FC 3F92              push R3
 05FE 4F92              push R4
 0600 5F92              push R5
 0602 0E940000          xcall _cos
 0606 5F90              pop R5
 0608 4F90              pop R4
 060A 3F90              pop R3
 060C 2F90              pop R2
 060E 3801              movw R6,R16
 0610 4901              movw R8,R18
 0612 00E0              ldi R16,<L5
 0614 10E0              ldi R17,>L5
 0616 0E940000          xcall lpm32
 061A 3A93              st -y,R19
 061C 2A93              st -y,R18
 061E 1A93              st -y,R17
 0620 0A93              st -y,R16
 0622 00912200          lds R16,_TI
 0626 10912300          lds R17,_TI+1
 062A 1695              lsr R17
 062C 0795              ror R16
 062E 0E940000          xcall int2fp
 0632 3A93              st -y,R19
 0634 2A93              st -y,R18
 0636 1A93              st -y,R17
 0638 0A93              st -y,R16
 063A 0E940000          xcall empy32fs
 063E 00912200          lds R16,_TI
 0642 10912300          lds R17,_TI+1
 0646 0170              andi R16,1
 0648 1070              andi R17,0
 064A 0E940000          xcall int2fp
 064E 3A93              st -y,R19
 0650 2A93              st -y,R18
 0652 1A93              st -y,R17
 0654 0A93              st -y,R16
 0656 0E940000          xcall add32fs
 065A 00E0              ldi R16,<L5
 065C 10E0              ldi R17,>L5
 065E 0E940000          xcall lpm32
 0662 3A93              st -y,R19
 0664 2A93              st -y,R18
 0666 1A93              st -y,R17
 0668 0A93              st -y,R16
 066A 00912000          lds R16,_temp
 066E 10912100          lds R17,_temp+1
 0672 1695              lsr R17
 0674 0795              ror R16
 0676 0E940000          xcall int2fp
 067A 3A93              st -y,R19
 067C 2A93              st -y,R18
 067E 1A93              st -y,R17
 0680 0A93              st -y,R16
 0682 0E940000          xcall empy32fs
 0686 00912000          lds R16,_temp
 068A 10912100          lds R17,_temp+1
 068E 0170              andi R16,1
 0690 1070              andi R17,0
 0692 0E940000          xcall int2fp
 0696 3A93              st -y,R19
 0698 2A93              st -y,R18
 069A 1A93              st -y,R17
 069C 0A93              st -y,R16
 069E 0E940000          xcall add32fs
 06A2 5A92              st -y,R5
 06A4 4A92              st -y,R4
 06A6 3A92              st -y,R3
 06A8 2A92              st -y,R2
 06AA 0E940000          xcall empy32fs
 06AE 0E940000          xcall add32fs
 06B2 20904800          lds R2,_b
 06B6 30904900          lds R3,_b+1
 06BA 20914A00          lds R18,_k
 06BE 30914B00          lds R19,_k+1
 06C2 220D              add R18,R2
 06C4 331D              adc R19,R3
 06C6 02E0              ldi R16,2
 06C8 10E0              ldi R17,0
 06CA 0E940000          xcall empy16s
 06CE F801              movw R30,R16
 06D0 80E0              ldi R24,<_dataI
 06D2 90E0              ldi R25,>_dataI
 06D4 E80F              add R30,R24
 06D6 F91F              adc R31,R25
 06D8 0081              ldd R16,z+0
 06DA 1181              ldd R17,z+1
 06DC 0E940000          xcall int2fp
 06E0 3A93              st -y,R19
 06E2 2A93              st -y,R18
 06E4 1A93              st -y,R17
 06E6 0A93              st -y,R16
 06E8 9A92              st -y,R9
 06EA 8A92              st -y,R8
 06EC 7A92              st -y,R7
 06EE 6A92              st -y,R6
 06F0 0E940000          xcall empy32fs
 06F4 0E940000          xcall sub32f
 06F8 0E940000          xcall fp2int
 06FC 1801              movw R2,R16
 06FE 40904800          lds R4,_b
 0702 50904900          lds R5,_b+1
 0706 20914A00          lds R18,_k
 070A 30914B00          lds R19,_k+1
 070E 240D              add R18,R4
 0710 351D              adc R19,R5
 0712 02E0              ldi R16,2
 0714 10E0              ldi R17,0
 0716 0E940000          xcall empy16s
 071A F801              movw R30,R16
 071C 80E0              ldi R24,<_dataI
 071E 90E0              ldi R25,>_dataI
 0720 E80F              add R30,R24
 0722 F91F              adc R31,R25
 0724 3182              std z+1,R3
 0726 2082              std z+0,R2
 0728                   .dbline -2
 0728           L2:
 0728                   .dbline 0 ; func end
 0728 0895              ret
 072A                   .dbend
 072A                   .dbfunc e FFT _FFT fV
 072A           ;          dataI -> R20,R21
 072A           ;          dataR -> R22,R23
                        .even
 072A           _FFT::
 072A 0E940000          xcall push_gset3
 072E A901              movw R20,R18
 0730 B801              movw R22,R16
 0732                   .dbline -1
 0732                   .dbline 46
 0732           ;       
 0732           ;       /*dataR[k]=dataR[k]+dataR[k+b]*cos_tab[p]+dataI[k+b]*sin_tab[p];
 0732           ;     dataI[k]=dataI[k]-dataR[k+b]*sin_tab[p]+dataI[k+b]*cos_tab[p];
 0732           ;     dataR[k+b]=TR-dataR[k+b]*cos_tab[p]-dataI[k+b]*sin_tab[p];
 0732           ;     dataI[k+b]=TI+temp*sin_tab[p]-dataI[k+b]*cos_tab[p];*/
 0732           ; 
 0732           ;  }
 0732           ; void FFT(int dataR[],int dataI[])
 0732           ; {
 0732                   .dbline 48
 0732           ; // 以下是数据掉头功能
 0732           ;   for(i = 0 ; i < 16 ; i++)
 0732 2224              clr R2
 0734 3324              clr R3
 0736 30924F00          sts _i+1,R3
 073A 20924E00          sts _i,R2
 073E           L7:
 073E                   .dbline 49
 073E                   .dbline 50
 073E 60DC              xcall _CHANGE
 0740                   .dbline 51
 0740           L8:
 0740                   .dbline 48
 0740 80914E00          lds R24,_i
 0744 90914F00          lds R25,_i+1
 0748 0196              adiw R24,1
 074A 90934F00          sts _i+1,R25
 074E 80934E00          sts _i,R24
 0752                   .dbline 48
 0752 8031              cpi R24,16
 0754 E0E0              ldi R30,0
 0756 9E07              cpc R25,R30
 0758 94F3              brlt L7
 075A                   .dbline 52
 075A           ;    { 
 075A           ;     CHANGE ( ) ;
 075A           ;    }
 075A           ;   for(i=0;i<16;i++)
 075A 2224              clr R2
 075C 3324              clr R3
 075E 30924F00          sts _i+1,R3
 0762 20924E00          sts _i,R2
 0766           L11:
 0766                   .dbline 53
 0766                   .dbline 54
 0766 20914E00          lds R18,_i
 076A 30914F00          lds R19,_i+1
 076E 02E0              ldi R16,2
 0770 10E0              ldi R17,0
 0772 0E940000          xcall empy16s
 0776 F801              movw R30,R16
 0778 E40F              add R30,R20
 077A F51F              adc R31,R21
 077C 2080              ldd R2,z+0
 077E 3180              ldd R3,z+1
 0780 F801              movw R30,R16
 0782 E60F              add R30,R22
 0784 F71F              adc R31,R23
 0786 3182              std z+1,R3
 0788 2082              std z+0,R2
 078A                   .dbline 54
 078A 20914E00          lds R18,_i
 078E 30914F00          lds R19,_i+1
 0792 02E0              ldi R16,2
 0794 10E0              ldi R17,0
 0796 0E940000          xcall empy16s
 079A F801              movw R30,R16
 079C E40F              add R30,R20
 079E F51F              adc R31,R21
 07A0 2224              clr R2
 07A2 3324              clr R3
 07A4 3182              std z+1,R3
 07A6 2082              std z+0,R2
 07A8                   .dbline 55
 07A8           L12:
 07A8                   .dbline 52
 07A8 80914E00          lds R24,_i
 07AC 90914F00          lds R25,_i+1
 07B0 0196              adiw R24,1
 07B2 90934F00          sts _i+1,R25
 07B6 80934E00          sts _i,R24
 07BA                   .dbline 52
 07BA 8031              cpi R24,16
 07BC E0E0              ldi R30,0
 07BE 9E07              cpc R25,R30
 07C0 94F2              brlt L11
 07C2                   .dbline 57
 07C2           ;    {
 07C2           ;     dataR[i]=dataI[i]; dataI[i]=0; 
 07C2           ;    }
 07C2           ; // FFT算法
 07C2           ;   for(L=1;L<=4;L++)                                           // 第一层循环
 07C2 81E0              ldi R24,1
 07C4 90E0              ldi R25,0
 07C6 90935100          sts _L+1,R25
 07CA 80935000          sts _L,R24
 07CE           L15:
 07CE                   .dbline 58
 07CE           ;   {
 07CE                   .dbline 59
 07CE           ;      b=1; i=L-1;
 07CE 81E0              ldi R24,1
 07D0 90E0              ldi R25,0
 07D2 90934900          sts _b+1,R25
 07D6 80934800          sts _b,R24
 07DA                   .dbline 59
 07DA 80915000          lds R24,_L
 07DE 90915100          lds R25,_L+1
 07E2 0197              sbiw R24,1
 07E4 90934F00          sts _i+1,R25
 07E8 80934E00          sts _i,R24
 07EC 15C0              xjmp L20
 07EE           L19:
 07EE                   .dbline 61
 07EE                   .dbline 62
 07EE 20914800          lds R18,_b
 07F2 30914900          lds R19,_b+1
 07F6 02E0              ldi R16,2
 07F8 10E0              ldi R17,0
 07FA 0E940000          xcall empy16s
 07FE 10934900          sts _b+1,R17
 0802 00934800          sts _b,R16
 0806                   .dbline 62
 0806 80914E00          lds R24,_i
 080A 90914F00          lds R25,_i+1
 080E 0197              sbiw R24,1
 0810 90934F00          sts _i+1,R25
 0814 80934E00          sts _i,R24
 0818                   .dbline 63
 0818           L20:
 0818                   .dbline 60
 0818           ;      while(i>0) 
 0818 2224              clr R2
 081A 3324              clr R3
 081C 40904E00          lds R4,_i
 0820 50904F00          lds R5,_i+1
 0824 2414              cp R2,R4
 0826 3504              cpc R3,R5
 0828 14F3              brlt L19
 082A                   .dbline 64
 082A           ;     {
 082A           ;       b=b*2; i--;
 082A           ;     } 
 082A           ;        for(j=0;j<=b-1;j++)                                             // 第二层循环
 082A 30924D00          sts _j+1,R3
 082E 20924C00          sts _j,R2
 0832 6BC0              xjmp L25
 0834           L22:
 0834                   .dbline 65
 0834           ;          { 
 0834                   .dbline 66
 0834           ;            p=1; i=4-L;

⌨️ 快捷键说明

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