📄 ff.lis
字号:
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 + -