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

📄 ff.lis

📁 在ICCAVR 环境实现的fft,
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 04F6 0E940000          xcall _cos
 04FA 5F90              pop R5
 04FC 4F90              pop R4
 04FE 3F90              pop R3
 0500 2F90              pop R2
 0502 3801              movw R6,R16
 0504 4901              movw R8,R18
 0506 FE01              movw R30,R28
 0508 4481              ldd R20,z+4
 050A 5581              ldd R21,z+5
 050C 6681              ldd R22,z+6
 050E 7781              ldd R23,z+7
 0510 7A93              st -y,R23
 0512 6A93              st -y,R22
 0514 5A93              st -y,R21
 0516 4A93              st -y,R20
 0518 FE01              movw R30,R28
 051A            ; stack offset 4
 051A 4485              ldd R20,z+12
 051C 5585              ldd R21,z+13
 051E 6685              ldd R22,z+14
 0520 7785              ldd R23,z+15
 0522 7A93              st -y,R23
 0524 6A93              st -y,R22
 0526 5A93              st -y,R21
 0528 4A93              st -y,R20
 052A 5A92              st -y,R5
 052C 4A92              st -y,R4
 052E 3A92              st -y,R3
 0530 2A92              st -y,R2
 0532 0E940000          xcall empy32fs
 0536 0E940000          xcall add32fs
 053A 9601              movw R18,R12
 053C            ; stack offset 4
 053C 0A8C              ldd R0,y+26
 053E 1B8C              ldd R1,y+27
 0540 200D              add R18,R0
 0542 311D              adc R19,R1
 0544 04E0              ldi R16,4
 0546 10E0              ldi R17,0
 0548 0E940000          xcall empy16s
 054C F801              movw R30,R16
 054E            ; stack offset 4
 054E 0AA4              ldd R0,y+42
 0550 1BA4              ldd R1,y+43
 0552 E00D              add R30,R0
 0554 F11D              adc R31,R1
 0556 2080              ldd R2,z+0
 0558 3180              ldd R3,z+1
 055A 4280              ldd R4,z+2
 055C 5380              ldd R5,z+3
 055E 5A92              st -y,R5
 0560 4A92              st -y,R4
 0562 3A92              st -y,R3
 0564 2A92              st -y,R2
 0566 9A92              st -y,R9
 0568 8A92              st -y,R8
 056A 7A92              st -y,R7
 056C 6A92              st -y,R6
 056E 0E940000          xcall empy32fs
 0572 0E940000          xcall sub32f
 0576 9601              movw R18,R12
 0578 0E88              ldd R0,y+22
 057A 1F88              ldd R1,y+23
 057C 200D              add R18,R0
 057E 311D              adc R19,R1
 0580 04E0              ldi R16,4
 0582 10E0              ldi R17,0
 0584 0E940000          xcall empy16s
 0588 F801              movw R30,R16
 058A 0EA0              ldd R0,y+38
 058C 1FA0              ldd R1,y+39
 058E E00D              add R30,R0
 0590 F11D              adc R31,R1
 0592 0083              std z+0,R16
 0594 1183              std z+1,R17
 0596 2283              std z+2,R18
 0598 3383              std z+3,R19
 059A                   .dbline 69
 059A           L26:
 059A                   .dbline 54
 059A 02E0              ldi R16,2
 059C 10E0              ldi R17,0
 059E 2E89              ldd R18,y+22
 05A0 3F89              ldd R19,y+23
 05A2 0E940000          xcall empy16s
 05A6 C00E              add R12,R16
 05A8 D11E              adc R13,R17
 05AA           L28:
 05AA                   .dbline 54
 05AA C601              movw R24,R12
 05AC 8830              cpi R24,8
 05AE E0E0              ldi R30,0
 05B0 9E07              cpc R25,R30
 05B2 0CF4              brge X2
 05B4 02CE              xjmp L25
 05B6           X2:
 05B6                   .dbline 71
 05B6           L19:
 05B6                   .dbline 42
 05B6 C501              movw R24,R10
 05B8 0196              adiw R24,1
 05BA 5C01              movw R10,R24
 05BC           L21:
 05BC                   .dbline 42
 05BC 8E89              ldd R24,y+22
 05BE 9F89              ldd R25,y+23
 05C0 0197              sbiw R24,1
 05C2 8A15              cp R24,R10
 05C4 9B05              cpc R25,R11
 05C6 0CF0              brlt X3
 05C8 D6CD              xjmp L18
 05CA           X3:
 05CA                   .dbline 73
 05CA           L12:
 05CA                   .dbline 32
 05CA 888D              ldd R24,y+24
 05CC 998D              ldd R25,y+25
 05CE 0196              adiw R24,1
 05D0 998F              std y+25,R25
 05D2 888F              std y+24,R24
 05D4                   .dbline 32
 05D4 83E0              ldi R24,3
 05D6 90E0              ldi R25,0
 05D8 088C              ldd R0,y+24
 05DA 198C              ldd R1,y+25
 05DC 8015              cp R24,R0
 05DE 9105              cpc R25,R1
 05E0 0CF0              brlt X4
 05E2 AACD              xjmp L11
 05E4           X4:
 05E4                   .dbline 75
 05E4           ;            {  p=2*PI*p/8;
 05E4           ;               TR = dataR [ k ] ;
 05E4           ;               TI = dataI [ k ] ; 
 05E4           ;               temp = dataR [ k + b ] ;
 05E4           ;               dataR[k]=dataR[k]+dataR[k+b]*cos(p)+dataI[k+b]*sin(p);
 05E4           ;               dataI[k]=dataI[k]-dataR[k+b]*sin(p)+dataI[k+b]*cos(p);
 05E4           ;               dataR[k+b]=TR-dataR[k+b]*cos(p)-dataI[k+b]*sin(p);
 05E4           ;               dataI[k+b]=TI+temp*sin(p)-dataI[k+b]*cos(p);
 05E4           ;                         
 05E4           ;                         
 05E4           ;                         /*dataR [ k ] = dataR [ k ] + dataR [ k + b ] * cos_tab [ p ] + dataI [ k + b ] * sin_tab [ p ] ;
 05E4           ;               dataI [ k ] = dataI [ k ] - dataR [ k + b ] * sin_tab [ p ] + dataI [ k + b ] * cos_tab [ p ] ;
 05E4           ;               dataR [ k + b ] = TR - dataR [ k + b ] * cos_tab [ p ] - dataI [ k + b ] * sin_tab [ p ] ;
 05E4           ;               dataI [ k + b ] = TI + temp * sin_tab [ p ] - dataI [ k + b ] * cos_tab [ p ] ;*/
 05E4           ;            } /* END for (3) */
 05E4           ;     
 05E4           ;      } /* END for (2) */
 05E4           ;   
 05E4           ;   } /* END for (1) */
 05E4           ; 
 05E4           ;   for ( i = 0 ; i < 32 ; i ++ )
 05E4 2224              clr R2
 05E6 20922000          sts _i,R2
 05EA 93C0              xjmp L34
 05EC           L31:
 05EC                   .dbline 76
 05EC           ;     {                        /* 只需要32次以下的谐波进行分析 */
 05EC                   .dbline 77
 05EC           ;       w [ i ] = sqrt ( dataR [ i ] * dataR [ i ] + dataI [ i ] * dataI [ i ] ) ;
 05EC 20902000          lds R2,_i
 05F0 84E0              ldi R24,4
 05F2 829D              mul R24,R2
 05F4 1001              movw R2,R0
 05F6 F101              movw R30,R2
 05F8 0CA0              ldd R0,y+36
 05FA 1DA0              ldd R1,y+37
 05FC E00D              add R30,R0
 05FE F11D              adc R31,R1
 0600 4080              ldd R4,z+0
 0602 5180              ldd R5,z+1
 0604 6280              ldd R6,z+2
 0606 7380              ldd R7,z+3
 0608 FE01              movw R30,R28
 060A 4686              std z+14,R4
 060C 5786              std z+15,R5
 060E 608A              std z+16,R6
 0610 718A              std z+17,R7
 0612 F101              movw R30,R2
 0614 0EA0              ldd R0,y+38
 0616 1FA0              ldd R1,y+39
 0618 E00D              add R30,R0
 061A F11D              adc R31,R1
 061C 2080              ldd R2,z+0
 061E 3180              ldd R3,z+1
 0620 4280              ldd R4,z+2
 0622 5380              ldd R5,z+3
 0624 FE01              movw R30,R28
 0626 228A              std z+18,R2
 0628 338A              std z+19,R3
 062A 448A              std z+20,R4
 062C 558A              std z+21,R5
 062E FE01              movw R30,R28
 0630 2684              ldd R2,z+14
 0632 3784              ldd R3,z+15
 0634 4088              ldd R4,z+16
 0636 5188              ldd R5,z+17
 0638 5A92              st -y,R5
 063A 4A92              st -y,R4
 063C 3A92              st -y,R3
 063E 2A92              st -y,R2
 0640 FE01              movw R30,R28
 0642            ; stack offset 4
 0642 2288              ldd R2,z+18
 0644 3388              ldd R3,z+19
 0646 4488              ldd R4,z+20
 0648 5588              ldd R5,z+21
 064A 5A92              st -y,R5
 064C 4A92              st -y,R4
 064E 3A92              st -y,R3
 0650 2A92              st -y,R2
 0652 0E940000          xcall empy32fs
 0656 FE01              movw R30,R28
 0658            ; stack offset 4
 0658 2688              ldd R2,z+22
 065A 3788              ldd R3,z+23
 065C 408C              ldd R4,z+24
 065E 518C              ldd R5,z+25
 0660 5A92              st -y,R5
 0662 4A92              st -y,R4
 0664 3A92              st -y,R3
 0666 2A92              st -y,R2
 0668 FE01              movw R30,R28
 066A            ; stack offset 8
 066A 228C              ldd R2,z+26
 066C 338C              ldd R3,z+27
 066E 448C              ldd R4,z+28
 0670 558C              ldd R5,z+29
 0672 5A92              st -y,R5
 0674 4A92              st -y,R4
 0676 3A92              st -y,R3
 0678 2A92              st -y,R2
 067A 0E940000          xcall empy32fs
 067E 0E940000          xcall add32f
 0682 0E940000          xcall _sqrt
 0686 1801              movw R2,R16
 0688 2901              movw R4,R18
 068A 3A93              st -y,R19
 068C 2A93              st -y,R18
 068E 1A93              st -y,R17
 0690 0A93              st -y,R16
 0692 00E0              ldi R16,<L37
 0694 10E0              ldi R17,>L37
 0696 0E940000          xcall lpm32
 069A 3A93              st -y,R19
 069C 2A93              st -y,R18
 069E 1A93              st -y,R17
 06A0 0A93              st -y,R16
 06A2 0E940000          xcall cmp32f
 06A6 ACF0              brlt L35
 06A8 5A92              st -y,R5
 06AA 4A92              st -y,R4
 06AC 3A92              st -y,R3
 06AE 2A92              st -y,R2
 06B0 00E0              ldi R16,<L37
 06B2 10E0              ldi R17,>L37
 06B4 0E940000          xcall lpm32
 06B8 3A93              st -y,R19
 06BA 2A93              st -y,R18
 06BC 1A93              st -y,R17
 06BE 0A93              st -y,R16
 06C0 0E940000          xcall sub32f
 06C4 0E940000          xcall fp2int
 06C8 C801              movw R24,R16
 06CA 8050              subi R24,0  ; offset = 32768
 06CC 9048              sbci R25,128
 06CE 7C01              movw R14,R24
 06D0 05C0              xjmp L36
 06D2           L35:
 06D2 8101              movw R16,R2
 06D4 9201              movw R18,R4
 06D6 0E940000          xcall fp2int
 06DA 7801              movw R14,R16
 06DC           L36:
 06DC 80E0              ldi R24,<_w
 06DE 90E0              ldi R25,>_w
 06E0 E0912000          lds R30,_i
 06E4 FF27              clr R31
 06E6 E80F              add R30,R24
 06E8 F91F              adc R31,R25
 06EA E082              std z+0,R14
 06EC                   .dbline 78
 06EC           ;         if ( i )
 06EC 60902000          lds R6,_i
 06F0 6620              tst R6
 06F2 51F0              breq L38
 06F4                   .dbline 79
 06F4           ;            {
 06F4                   .dbline 80
 06F4           ;              w [ i ] = w [ i ] / 64 ;
 06F4 7724              clr R7
 06F6 680E              add R6,R24
 06F8 791E              adc R7,R25
 06FA 10E4              ldi R17,64
 06FC F301              movw R30,R6
 06FE 0081              ldd R16,z+0
 0700 0E940000          xcall div8u
 0704 F301              movw R30,R6
 0706 0083              std z+0,R16
 0708                   .dbline 81
 0708           ;            }
 0708           L38:
 0708                   .dbline 82
 0708           L32:
 0708                   .dbline 75
 0708 80912000          lds R24,_i
 070C 8F5F              subi R24,255    ; addi 1
 070E 80932000          sts _i,R24
 0712           L34:
 0712                   .dbline 75
 0712 80912000          lds R24,_i
 0716 8032              cpi R24,32
 0718 08F4              brsh X5
 071A 68CF              xjmp L31
 071C           X5:
 071C                   .dbline 83
 071C           ;      }
 071C           ;    w [ 0 ] = w [ 0 ] / 2 ;
 071C 60900000          lds R6,_w
 0720 6694              lsr R6
 0722 60920000          sts _w,R6
 0726                   .dbline -2
 0726           L1:
 0726 6A96              adiw R28,26
 0728 0E940000          xcall pop_gset5
 072C 2496              adiw R28,4
 072E                   .dbline 0 ; func end
 072E 0895              ret
 0730                   .dbsym l xx 12 I
 0730                   .dbsym r x2 14 I
 0730                   .dbsym r x1 10 I
 0730                   .dbsym r x0 12 I
 0730                   .dbsym l L 24 I
 0730                   .dbsym r j 10 I
 0730                   .dbsym l temp 8 D
 0730                   .dbsym l TI 4 D
 0730                   .dbsym l TR 0 D
 0730                   .dbsym l b 22 I
 0730                   .dbsym r p 14 I
 0730                   .dbsym r k 12 I
 0730                   .dbsym l dataI 38 pD
 0730                   .dbsym l dataR 36 pD
 0730                   .dbend
 0730                   .dbfunc e main _main fV
                        .even
 0730           _main::
 0730                   .dbline -1
 0730                   .dbline 88
 0730           ; 
 0730           ; } 
 0730           ; 
 0730           ; void main()
 0730           ; {
 0730                   .dbline 89
 0730           ;  FFT(dataR,dataI);
 0730 20E0              ldi R18,<_dataI
 0732 30E0              ldi R19,>_dataI
 0734 00E0              ldi R16,<_dataR
 0736 10E0              ldi R17,>_dataR
 0738 63DC              xcall _FFT
 073A           L41:
 073A                   .dbline 90
 073A           L42:
 073A                   .dbline 90
 073A FFCF              xjmp L41
 073C           X6:
 073C                   .dbline -2
 073C           L40:
 073C                   .dbline 0 ; func end
 073C 0895              ret
 073E                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile D:\HJN\Design\AVR\fft\ff.c
 0000           _w::
 0000                   .blkb 32
 0020                   .dbsym e w _w A[32:32]c
 0020           _i::
 0020                   .blkb 1
 0021                   .dbsym e i _i c
                        .area lit(rom, con, rel)
 0000           L37:
 0000 00000047          .word 0x0,0x4700
 0004           L30:
 0004 00000041          .word 0x0,0x4100
 0008           L29:
 0008 DA0FC940          .word 0xfda,0x40c9
 000C           L10:
 000C 00000000          .word 0x0,0x0

⌨️ 快捷键说明

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