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

📄 fftbook.lst

📁 在ICCAVR 环境实现的fft,
💻 LST
📖 第 1 页 / 共 5 页
字号:
    0252 E0B0      LDI	R27,0
    0253 0FEA      ADD	R30,R26
    0254 1FFB      ADC	R31,R27
    0255 8100      LDD	R16,Z+0
    0256 8111      LDD	R17,Z+1
    0257 940E06B6  CALL	int2fp
    0259 933A      ST	R19,-Y
    025A 932A      ST	R18,-Y
    025B 931A      ST	R17,-Y
    025C 930A      ST	R16,-Y
    025D 925A      ST	R5,-Y
    025E 924A      ST	R4,-Y
    025F 923A      ST	R3,-Y
    0260 922A      ST	R2,-Y
    0261 940E083F  CALL	empy32fs
    0263 940E0718  CALL	sub32fs
    0265 902000C8  LDS	R2,b
    0267 903000C9  LDS	R3,b+1
    0269 912000CA  LDS	R18,k
    026B 913000CB  LDS	R19,k+1
    026D 0D22      ADD	R18,R2
    026E 1D33      ADC	R19,R3
    026F E002      LDI	R16,2
    0270 E010      LDI	R17,0
    0271 940E060D  CALL	empy16s
    0273 01F8      MOVW	R30,R16
    0274 E8A0      LDI	R26,0x80
    0275 E0B0      LDI	R27,0
    0276 0FEA      ADD	R30,R26
    0277 1FFB      ADC	R31,R27
    0278 8100      LDD	R16,Z+0
    0279 8111      LDD	R17,Z+1
    027A 940E06B6  CALL	int2fp
    027C 933A      ST	R19,-Y
    027D 932A      ST	R18,-Y
    027E 931A      ST	R17,-Y
    027F 930A      ST	R16,-Y
    0280 929A      ST	R9,-Y
    0281 928A      ST	R8,-Y
    0282 927A      ST	R7,-Y
    0283 926A      ST	R6,-Y
    0284 940E083F  CALL	empy32fs
    0286 940E0713  CALL	add32f
    0288 940E066E  CALL	fp2int
    028A 01FC      MOVW	R30,R24
    028B 8311      STD	Z+1,R17
    028C 8300      STD	Z+0,R16
(0036)     dataR[k+b]=TR-dataR[k+b]*cos(2*PI*p/16)-dataI[k+b]*sin(2*PI*p/16);
    028D E600      LDI	R16,0x60
    028E E010      LDI	R17,0
    028F 940E064E  CALL	lpm32
    0291 933A      ST	R19,-Y
    0292 932A      ST	R18,-Y
    0293 931A      ST	R17,-Y
    0294 930A      ST	R16,-Y
    0295 910000C6  LDS	R16,p
    0297 911000C7  LDS	R17,p+1
    0299 940E06B6  CALL	int2fp
    029B 933A      ST	R19,-Y
    029C 932A      ST	R18,-Y
    029D 931A      ST	R17,-Y
    029E 930A      ST	R16,-Y
    029F 940E083F  CALL	empy32fs
    02A1 E50C      LDI	R16,0x5C
    02A2 E010      LDI	R17,0
    02A3 940E064E  CALL	lpm32
    02A5 933A      ST	R19,-Y
    02A6 932A      ST	R18,-Y
    02A7 931A      ST	R17,-Y
    02A8 930A      ST	R16,-Y
    02A9 940E0774  CALL	div32f
    02AB 940E08E6  CALL	_cos
    02AD 0118      MOVW	R2,R16
    02AE 0129      MOVW	R4,R18
    02AF E600      LDI	R16,0x60
    02B0 E010      LDI	R17,0
    02B1 940E064E  CALL	lpm32
    02B3 933A      ST	R19,-Y
    02B4 932A      ST	R18,-Y
    02B5 931A      ST	R17,-Y
    02B6 930A      ST	R16,-Y
    02B7 910000C6  LDS	R16,p
    02B9 911000C7  LDS	R17,p+1
    02BB 940E06B6  CALL	int2fp
    02BD 933A      ST	R19,-Y
    02BE 932A      ST	R18,-Y
    02BF 931A      ST	R17,-Y
    02C0 930A      ST	R16,-Y
    02C1 940E083F  CALL	empy32fs
    02C3 E50C      LDI	R16,0x5C
    02C4 E010      LDI	R17,0
    02C5 940E064E  CALL	lpm32
    02C7 933A      ST	R19,-Y
    02C8 932A      ST	R18,-Y
    02C9 931A      ST	R17,-Y
    02CA 930A      ST	R16,-Y
    02CB 940E0774  CALL	div32f
    02CD 922F      PUSH	R2
    02CE 923F      PUSH	R3
    02CF 924F      PUSH	R4
    02D0 925F      PUSH	R5
    02D1 940E0BA2  CALL	_sin
    02D3 905F      POP	R5
    02D4 904F      POP	R4
    02D5 903F      POP	R3
    02D6 902F      POP	R2
    02D7 0138      MOVW	R6,R16
    02D8 0149      MOVW	R8,R18
    02D9 918000C8  LDS	R24,b
    02DB 919000C9  LDS	R25,b+1
    02DD 912000CA  LDS	R18,k
    02DF 913000CB  LDS	R19,k+1
    02E1 0F28      ADD	R18,R24
    02E2 1F39      ADC	R19,R25
    02E3 E002      LDI	R16,2
    02E4 E010      LDI	R17,0
    02E5 940E060D  CALL	empy16s
    02E7 01C8      MOVW	R24,R16
    02E8 E6E0      LDI	R30,0x60
    02E9 E0F0      LDI	R31,0
    02EA 0F8E      ADD	R24,R30
    02EB 1F9F      ADC	R25,R31
    02EC E508      LDI	R16,0x58
    02ED E010      LDI	R17,0
    02EE 940E064E  CALL	lpm32
    02F0 933A      ST	R19,-Y
    02F1 932A      ST	R18,-Y
    02F2 931A      ST	R17,-Y
    02F3 930A      ST	R16,-Y
    02F4 910000A4  LDS	R16,TR
    02F6 911000A5  LDS	R17,TR+1
    02F8 9516      LSR	R17
    02F9 9507      ROR	R16
    02FA 940E06B6  CALL	int2fp
    02FC 933A      ST	R19,-Y
    02FD 932A      ST	R18,-Y
    02FE 931A      ST	R17,-Y
    02FF 930A      ST	R16,-Y
    0300 940E083F  CALL	empy32fs
    0302 910000A4  LDS	R16,TR
    0304 911000A5  LDS	R17,TR+1
    0306 7001      ANDI	R16,1
    0307 7010      ANDI	R17,0
    0308 940E06B6  CALL	int2fp
    030A 933A      ST	R19,-Y
    030B 932A      ST	R18,-Y
    030C 931A      ST	R17,-Y
    030D 930A      ST	R16,-Y
    030E 940E0710  CALL	add32fs
    0310 01FC      MOVW	R30,R24
    0311 8100      LDD	R16,Z+0
    0312 8111      LDD	R17,Z+1
    0313 940E06B6  CALL	int2fp
    0315 933A      ST	R19,-Y
    0316 932A      ST	R18,-Y
    0317 931A      ST	R17,-Y
    0318 930A      ST	R16,-Y
    0319 925A      ST	R5,-Y
    031A 924A      ST	R4,-Y
    031B 923A      ST	R3,-Y
    031C 922A      ST	R2,-Y
    031D 940E083F  CALL	empy32fs
    031F 940E0718  CALL	sub32fs
    0321 902000C8  LDS	R2,b
    0323 903000C9  LDS	R3,b+1
    0325 912000CA  LDS	R18,k
    0327 913000CB  LDS	R19,k+1
    0329 0D22      ADD	R18,R2
    032A 1D33      ADC	R19,R3
    032B E002      LDI	R16,2
    032C E010      LDI	R17,0
    032D 940E060D  CALL	empy16s
    032F 01F8      MOVW	R30,R16
    0330 E8A0      LDI	R26,0x80
    0331 E0B0      LDI	R27,0
    0332 0FEA      ADD	R30,R26
    0333 1FFB      ADC	R31,R27
    0334 8100      LDD	R16,Z+0
    0335 8111      LDD	R17,Z+1
    0336 940E06B6  CALL	int2fp
    0338 933A      ST	R19,-Y
    0339 932A      ST	R18,-Y
    033A 931A      ST	R17,-Y
    033B 930A      ST	R16,-Y
    033C 929A      ST	R9,-Y
    033D 928A      ST	R8,-Y
    033E 927A      ST	R7,-Y
    033F 926A      ST	R6,-Y
    0340 940E083F  CALL	empy32fs
    0342 940E071B  CALL	sub32f
    0344 940E066E  CALL	fp2int
    0346 01FC      MOVW	R30,R24
    0347 8311      STD	Z+1,R17
    0348 8300      STD	Z+0,R16
(0037)     dataI[k+b]=TI+temp*sin(2*PI*p/16)-dataI[k+b]*cos(2*PI*p/16);
    0349 E600      LDI	R16,0x60
    034A E010      LDI	R17,0
    034B 940E064E  CALL	lpm32
    034D 933A      ST	R19,-Y
    034E 932A      ST	R18,-Y
    034F 931A      ST	R17,-Y
    0350 930A      ST	R16,-Y
    0351 910000C6  LDS	R16,p
    0353 911000C7  LDS	R17,p+1
    0355 940E06B6  CALL	int2fp
    0357 933A      ST	R19,-Y
    0358 932A      ST	R18,-Y
    0359 931A      ST	R17,-Y
    035A 930A      ST	R16,-Y
    035B 940E083F  CALL	empy32fs
    035D E50C      LDI	R16,0x5C
    035E E010      LDI	R17,0
    035F 940E064E  CALL	lpm32
    0361 933A      ST	R19,-Y
    0362 932A      ST	R18,-Y
    0363 931A      ST	R17,-Y
    0364 930A      ST	R16,-Y
    0365 940E0774  CALL	div32f
    0367 940E0BA2  CALL	_sin
    0369 0118      MOVW	R2,R16
    036A 0129      MOVW	R4,R18
    036B E600      LDI	R16,0x60
    036C E010      LDI	R17,0
    036D 940E064E  CALL	lpm32
    036F 933A      ST	R19,-Y
    0370 932A      ST	R18,-Y
    0371 931A      ST	R17,-Y
    0372 930A      ST	R16,-Y
    0373 910000C6  LDS	R16,p
    0375 911000C7  LDS	R17,p+1
    0377 940E06B6  CALL	int2fp
    0379 933A      ST	R19,-Y
    037A 932A      ST	R18,-Y
    037B 931A      ST	R17,-Y
    037C 930A      ST	R16,-Y
    037D 940E083F  CALL	empy32fs
    037F E50C      LDI	R16,0x5C
    0380 E010      LDI	R17,0
    0381 940E064E  CALL	lpm32
    0383 933A      ST	R19,-Y
    0384 932A      ST	R18,-Y
    0385 931A      ST	R17,-Y
    0386 930A      ST	R16,-Y
    0387 940E0774  CALL	div32f
    0389 922F      PUSH	R2
    038A 923F      PUSH	R3
    038B 924F      PUSH	R4
    038C 925F      PUSH	R5
    038D 940E08E6  CALL	_cos
    038F 905F      POP	R5
    0390 904F      POP	R4
    0391 903F      POP	R3
    0392 902F      POP	R2
    0393 0138      MOVW	R6,R16
    0394 0149      MOVW	R8,R18
    0395 E508      LDI	R16,0x58
    0396 E010      LDI	R17,0
    0397 940E064E  CALL	lpm32
    0399 933A      ST	R19,-Y
    039A 932A      ST	R18,-Y
    039B 931A      ST	R17,-Y
    039C 930A      ST	R16,-Y
    039D 910000A2  LDS	R16,TI
    039F 911000A3  LDS	R17,TI+1
    03A1 9516      LSR	R17
    03A2 9507      ROR	R16
    03A3 940E06B6  CALL	int2fp
    03A5 933A      ST	R19,-Y
    03A6 932A      ST	R18,-Y
    03A7 931A      ST	R17,-Y
    03A8 930A      ST	R16,-Y
    03A9 940E083F  CALL	empy32fs
    03AB 910000A2  LDS	R16,TI
    03AD 911000A3  LDS	R17,TI+1
    03AF 7001      ANDI	R16,1
    03B0 7010      ANDI	R17,0
    03B1 940E06B6  CALL	int2fp
    03B3 933A      ST	R19,-Y
    03B4 932A      ST	R18,-Y
    03B5 931A      ST	R17,-Y
    03B6 930A      ST	R16,-Y
    03B7 940E0710  CALL	add32fs
    03B9 E508      LDI	R16,0x58
    03BA E010      LDI	R17,0
    03BB 940E064E  CALL	lpm32
    03BD 933A      ST	R19,-Y
    03BE 932A      ST	R18,-Y
    03BF 931A      ST	R17,-Y
    03C0 930A      ST	R16,-Y
    03C1 910000A0  LDS	R16,temp
    03C3 911000A1  LDS	R17,temp+1
    03C5 9516      LSR	R17
    03C6 9507      ROR	R16
    03C7 940E06B6  CALL	int2fp
    03C9 933A      ST	R19,-Y
    03CA 932A      ST	R18,-Y
    03CB 931A      ST	R17,-Y
    03CC 930A      ST	R16,-Y
    03CD 940E083F  CALL	empy32fs
    03CF 910000A0  LDS	R16,temp
    03D1 911000A1  LDS	R17,temp+1
    03D3 7001      ANDI	R16,1
    03D4 7010      ANDI	R17,0
    03D5 940E06B6  CALL	int2fp
    03D7 933A      ST	R19,-Y
    03D8 932A      ST	R18,-Y
    03D9 931A      ST	R17,-Y
    03DA 930A      ST	R16,-Y
    03DB 940E0710  CALL	add32fs
    03DD 925A      ST	R5,-Y
    03DE 924A      ST	R4,-Y
    03DF 923A      ST	R3,-Y
    03E0 922A      ST	R2,-Y
    03E1 940E083F  CALL	empy32fs
    03E3 940E0710  CALL	add32fs
    03E5 902000C8  LDS	R2,b
    03E7 903000C9  LDS	R3,b+1
    03E9 912000CA  LDS	R18,k
    03EB 913000CB  LDS	R19,k+1
    03ED 0D22      ADD	R18,R2
    03EE 1D33      ADC	R19,R3
    03EF E002      LDI	R16,2
    03F0 E010      LDI	R17,0
    03F1 940E060D  CALL	empy16s
    03F3 01F8      MOVW	R30,R16
    03F4 E880      LDI	R24,0x80
    03F5 E090      LDI	R25,0
    03F6 0FE8      ADD	R30,R24
    03F7 1FF9      ADC	R31,R25
    03F8 8100      LDD	R16,Z+0
    03F9 8111      LDD	R17,Z+1
    03FA 940E06B6  CALL	int2fp
    03FC 933A      ST	R19,-Y
    03FD 932A      ST	R18,-Y
    03FE 931A      ST	R17,-Y
    03FF 930A      ST	R16,-Y
    0400 929A      ST	R9,-Y
    0401 928A      ST	R8,-Y
    0402 927A      ST	R7,-Y
    0403 926A      ST	R6,-Y
    0404 940E083F  CALL	empy32fs
    0406 940E071B  CALL	sub32f
    0408 940E066E  CALL	fp2int
    040A 0118      MOVW	R2,R16
    040B 904000C8  LDS	R4,b
    040D 905000C9  LDS	R5,b+1
    040F 912000CA  LDS	R18,k
    0411 913000CB  LDS	R19,k+1
    0413 0D24      ADD	R18,R4
    0414 1D35      ADC	R19,R5
    0415 E002      LDI	R16,2
    0416 E010      LDI	R17,0
    0417 940E060D  CALL	empy16s
    0419 01F8      MOVW	R30,R16
    041A E880      LDI	R24,0x80
    041B E090      LDI	R25,0
    041C 0FE8      ADD	R30,R24
    041D 1FF9      ADC	R31,R25
    041E 8231      STD	Z+1,R3
    041F 8220      STD	Z+0,R2
    0420 9508      RET
_FFT:
  dataI                --> R20
  dataR                --> R22
    0421 940E062A  CALL	push_gset3
    0423 01A9      MOVW	R20,R18
    0424 01B8      MOVW	R22,R16
(0038) 	
(0039) 	/*dataR[k]=dataR[k]+dataR[k+b]*cos_tab[p]+dataI[k+b]*sin_tab[p];
(0040)     dataI[k]=dataI[k]-dataR[k+b]*sin_tab[p]+dataI[k+b]*cos_tab[p];
(0041)     dataR[k+b]=TR-dataR[k+b]*cos_tab[p]-dataI[k+b]*sin_tab[p];
(0042)     dataI[k+b]=TI+temp*sin_tab[p]-dataI[k+b]*cos_tab[p];*/
(0043) 
(0044)  }
(0045) void FFT(int dataR[],int dataI[])
(0046) {
(0047) // 以下是数据掉头功能
(0048)   for(i = 0 ; i < 16 ; i++)
    0425 2422      CLR	R2
    0426 2433      CLR	R3
    0427 923000CF  STS	i+1,R3
    0429 922000CE  STS	i,R2
(0049)    { 
(0050)     CHANGE ( ) ;
    042B DC60      RCALL	_CHANGE
    042C 918000CE  LDS	R24,i
    042E 919000CF  LDS	R25,i+1
    0430 9601      ADIW	R24,1
    0431 939000CF  STS	i+1,R25
    0433 938000CE  STS	i,R24
    0435 3180      CPI	R24,0x10
    0436 E0E0      LDI	R30,0
    0437 079E      CPC	R25,R30
    0438 F394      BLT	0x042B
(0051)    }
(0052)   for(i=0;i<16;i++)
    0439 2422      CLR	R2
    043A 2433      CLR	R3
    043B 923000CF  STS	i+1,R3
    043D 922000CE  STS	i,R2
(0053)    {
(0054)     dataR[i]=dataI[i]; dataI[i]=0; 
    043F 912000CE  LDS	R18,i
    0441 913000CF  LDS	R19,i+1
    0443 E002      LDI	R16,2
    0444 E010      LDI	R17,0
    0445 940E060D  CALL	empy16s
    0447 01F8      MOVW	R30,R16
    0448 0FE4      ADD	R30,R20
    0449 1FF5      ADC	R31,R21
    044A 8020      LDD	R2,Z+0
    044B 8031      LDD	R3,Z+1
    044C 01F8      MOVW	R30,R16
    044D 0FE6      ADD	R30,R22
    044E 1FF7      ADC	R31,R23
    044F 8231      STD	Z+1,R3
    0450 8220      STD	Z+0,R2
    0451 912000CE  LDS	R18,i
    0453 913000CF  LDS	R19,i+1
    0455 E002      LDI	R16,2
    0456 E010      LDI	R17,0
    0457 940E060D  CALL	empy16s
    0459 01F8      MOVW	R30,R16
    045A 0FE4      ADD	R30,R20
    045B 1FF5      ADC	R31,R21
    045C 2422      CLR	R2
    045D 2433      CLR	R3
    045E 8231      STD	Z+1,R3
    045F 8220      STD	Z+0,R2
    0460 918000CE  LDS	R24,i
    0462 919000CF  LDS	R25,i+1
    0464 9601      ADIW	R24,1
    0465 939000CF  STS	i+1,R25
    0467 938000CE  STS	i,R24
    0469 3180      CPI	R24,0x10
    046A E0E0      LDI	R30,0
    046B 079E      CPC	R25,R30
    046C F294      BLT	0x043F
(0055)    }

⌨️ 快捷键说明

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