📄 atp.lst
字号:
036D 9508 RET
_main:
ucFlag --> Y+5
dFy --> Y+76
k --> Y+5
j --> Y+5
dEx --> Y+72
dEy2T --> Y+68
dEy1T --> Y+64
ucFX --> R10
slEy --> Y+60
dEyTotal --> Y+56
ulFX --> Y+52
dRad2 --> Y+48
dDeltaRad --> Y+44
i --> Y+40
dEy --> Y+36
dTotalData --> Y+32
ulFY --> Y+28
usADDATA --> Y+20
dADDATA --> Y+4
036E 97EF SBIW R28,0x3F
036F 9761 SBIW R28,0x11
(0150) }
(0151)
(0152)
(0153)
(0154) void main(void)
(0155) {
(0156) u32 i=0xFFFFFF;
0370 EF4F LDI R20,0xFF
0371 EF5F LDI R21,0xFF
0372 EF6F LDI R22,0xFF
0373 E070 LDI R23,0
0374 01FE MOVW R30,R28
0375 A740 STD Z+40,R20
0376 A751 STD Z+41,R21
0377 A762 STD Z+42,R22
0378 A773 STD Z+43,R23
(0157) u16 j,k;
(0158) u16 usADDATA[4];
(0159) double dADDATA[4];
(0160) double dEx,dEy;
(0161) double dTotalData;
(0162)
(0163) double dEy1T,dEy2T,dEyTotal;
(0164)
(0165) double dDeltaRad,dRad2;
(0166)
(0167) double dFy;
(0168)
(0169) s32 slEy;
(0170)
(0171) u32 ulFX,ulFY;
(0172)
(0173) u8 ucFlag;
(0174)
(0175)
(0176) u8 ucFX=99;
0379 E683 LDI R24,0x63
037A 2EA8 MOV R10,R24
(0177)
(0178)
(0179) SysInit();
037B 940E0F4C CALL _SysInit
(0180)
(0181)
(0182) ulFX=45000;
037D EC48 LDI R20,0xC8
037E EA5F LDI R21,0xAF
037F E060 LDI R22,0
0380 E070 LDI R23,0
0381 01FE MOVW R30,R28
0382 AB44 STD Z+52,R20
0383 AB55 STD Z+53,R21
0384 AB66 STD Z+54,R22
0385 AB77 STD Z+55,R23
(0183) ulFY=Fy0;
0386 E34A LDI R20,0x3A
0387 EE5F LDI R21,0xEF
0388 E060 LDI R22,0
0389 E070 LDI R23,0
038A 01FE MOVW R30,R28
038B 8F44 STD Z+28,R20
038C 8F55 STD Z+29,R21
038D 8F66 STD Z+30,R22
038E 8F77 STD Z+31,R23
(0184)
(0185)
(0186) ulFY=61000;
038F E448 LDI R20,0x48
0390 EE5E LDI R21,0xEE
0391 E060 LDI R22,0
0392 E070 LDI R23,0
0393 01FE MOVW R30,R28
0394 8F44 STD Z+28,R20
0395 8F55 STD Z+29,R21
0396 8F66 STD Z+30,R22
0397 8F77 STD Z+31,R23
(0187) OutputFrequency(ulFY,ulFX);
0398 01FE MOVW R30,R28
0399 A824 LDD R2,Z+52
039A A835 LDD R3,Z+53
039B A846 LDD R4,Z+54
039C A857 LDD R5,Z+55
039D 8228 STD Y+0,R2
039E 8239 STD Y+1,R3
039F 824A STD Y+2,R4
03A0 825B STD Y+3,R5
03A1 01FE MOVW R30,R28
03A2 8D04 LDD R16,Z+28
03A3 8D15 LDD R17,Z+29
03A4 8D26 LDD R18,Z+30
03A5 8D37 LDD R19,Z+31
03A6 DE09 RCALL _OutputFrequency
(0188)
(0189)
(0190) //ulFY=70000;
(0191) //OutputFrequency3(ucFX);
(0192)
(0193) /*
(0194) ucFlag=0;
(0195) while(1)
(0196) {
(0197) if(ucFlag)
(0198) {
(0199) OutputFrequency2();
(0200) ucFlag=0;
(0201) }
(0202) else
(0203) {
(0204) OutputFrequency1();
(0205) ucFlag=1;
(0206) }
(0207) delayus(200);
(0208) delayus(100);
(0209) //delayus(200);
(0210) //delayus(200);
(0211) //delayus(200);
(0212) //delayus(200);
(0213) //delayms(10);
(0214) }
(0215) */
(0216) delayms(10);
03A7 E00A LDI R16,0xA
03A8 940E0F07 CALL _delayms
03AA C0CB RJMP 0x0476
(0217)
(0218)
(0219) while(1)
(0220) {
(0221) NOP();
03AB 0000 NOP
(0222) delayms(3);
03AC E003 LDI R16,3
03AD 940E0F07 CALL _delayms
(0223) usAD_GetData(usADDATA);
03AF 018E MOVW R16,R28
03B0 5E0C SUBI R16,0xEC
03B1 4F1F SBCI R17,0xFF
03B2 940E11A9 CALL _usAD_GetData
(0224) //dADDATA[0]=(double)usADDATA[0];
(0225) //dADDATA[1]=(double)usADDATA[1];
(0226) //dADDATA[2]=(double)usADDATA[2];
(0227) //dADDATA[3]=(double)usADDATA[3];
(0228) //dTotalData=dADDATA[QDA]+dADDATA[QDB]+dADDATA[QDC]+dADDATA[QDD];
(0229)
(0230)
(0231) //dEx=(dADDATA[QDA]+dADDATA[QDD]-dADDATA[QDB]-dADDATA[QDC])/dTotalData;
(0232) //dEy=(dADDATA[QDA]+dADDATA[QDB]-dADDATA[QDC]-dADDATA[QDD])/dTotalData;
(0233)
(0234) slEy=usADDATA[QDA];
03B4 882C LDD R2,Y+20
03B5 883D LDD R3,Y+21
03B6 2444 CLR R4
03B7 2455 CLR R5
03B8 01FE MOVW R30,R28
03B9 AE24 STD Z+60,R2
03BA AE35 STD Z+61,R3
03BB AE46 STD Z+62,R4
03BC AE57 STD Z+63,R5
(0235) slEy=slEy+usADDATA[QDB];
03BD 882E LDD R2,Y+22
03BE 883F LDD R3,Y+23
03BF 2444 CLR R4
03C0 2455 CLR R5
03C1 01FE MOVW R30,R28
03C2 AC64 LDD R6,Z+60
03C3 AC75 LDD R7,Z+61
03C4 AC86 LDD R8,Z+62
03C5 AC97 LDD R9,Z+63
03C6 0C62 ADD R6,R2
03C7 1C73 ADC R7,R3
03C8 1C84 ADC R8,R4
03C9 1C95 ADC R9,R5
03CA 01FE MOVW R30,R28
03CB AE64 STD Z+60,R6
03CC AE75 STD Z+61,R7
03CD AE86 STD Z+62,R8
03CE AE97 STD Z+63,R9
(0236) slEy=slEy-usADDATA[QDC];
03CF 8C28 LDD R2,Y+24
03D0 8C39 LDD R3,Y+25
03D1 2444 CLR R4
03D2 2455 CLR R5
03D3 01FE MOVW R30,R28
03D4 AC64 LDD R6,Z+60
03D5 AC75 LDD R7,Z+61
03D6 AC86 LDD R8,Z+62
03D7 AC97 LDD R9,Z+63
03D8 1862 SUB R6,R2
03D9 0873 SBC R7,R3
03DA 0884 SBC R8,R4
03DB 0895 SBC R9,R5
03DC 01FE MOVW R30,R28
03DD AE64 STD Z+60,R6
03DE AE75 STD Z+61,R7
03DF AE86 STD Z+62,R8
03E0 AE97 STD Z+63,R9
(0237) slEy=slEy-usADDATA[QDD];
03E1 8C2A LDD R2,Y+26
03E2 8C3B LDD R3,Y+27
03E3 2444 CLR R4
03E4 2455 CLR R5
03E5 01FE MOVW R30,R28
03E6 AC64 LDD R6,Z+60
03E7 AC75 LDD R7,Z+61
03E8 AC86 LDD R8,Z+62
03E9 AC97 LDD R9,Z+63
03EA 1862 SUB R6,R2
03EB 0873 SBC R7,R3
03EC 0884 SBC R8,R4
03ED 0895 SBC R9,R5
03EE 01FE MOVW R30,R28
03EF AE64 STD Z+60,R6
03F0 AE75 STD Z+61,R7
03F1 AE86 STD Z+62,R8
03F2 AE97 STD Z+63,R9
(0238)
(0239) if(slEy!=0)
03F3 E040 LDI R20,0
03F4 E050 LDI R21,0
03F5 E060 LDI R22,0
03F6 E070 LDI R23,0
03F7 01FE MOVW R30,R28
03F8 AC24 LDD R2,Z+60
03F9 AC35 LDD R3,Z+61
03FA AC46 LDD R4,Z+62
03FB AC57 LDD R5,Z+63
03FC 1624 CP R2,R20
03FD 0635 CPC R3,R21
03FE 0646 CPC R4,R22
03FF 0657 CPC R5,R23
0400 F409 BNE 0x0402
0401 C072 RJMP 0x0474
(0240) {
(0241) if(slEy>0)
0402 E040 LDI R20,0
0403 E050 LDI R21,0
0404 E060 LDI R22,0
0405 E070 LDI R23,0
0406 01FE MOVW R30,R28
0407 AC24 LDD R2,Z+60
0408 AC35 LDD R3,Z+61
0409 AC46 LDD R4,Z+62
040A AC57 LDD R5,Z+63
040B 1542 CP R20,R2
040C 0553 CPC R21,R3
040D 0564 CPC R22,R4
040E 0575 CPC R23,R5
040F F00C BLT 0x0411
0410 C02B RJMP 0x043C
(0242) {
(0243) ulFY=ulFY+100;
0411 E644 LDI R20,0x64
0412 E050 LDI R21,0
0413 E060 LDI R22,0
0414 E070 LDI R23,0
0415 01FE MOVW R30,R28
0416 8C24 LDD R2,Z+28
0417 8C35 LDD R3,Z+29
0418 8C46 LDD R4,Z+30
0419 8C57 LDD R5,Z+31
041A 0E24 ADD R2,R20
041B 1E35 ADC R3,R21
041C 1E46 ADC R4,R22
041D 1E57 ADC R5,R23
041E 01FE MOVW R30,R28
041F 8E24 STD Z+28,R2
0420 8E35 STD Z+29,R3
0421 8E46 STD Z+30,R4
0422 8E57 STD Z+31,R5
(0244) if(ulFY>70000) ulFY=70000;
0423 E740 LDI R20,0x70
0424 E151 LDI R21,0x11
0425 E061 LDI R22,1
0426 E070 LDI R23,0
0427 01FE MOVW R30,R28
0428 8C24 LDD R2,Z+28
0429 8C35 LDD R3,Z+29
042A 8C46 LDD R4,Z+30
042B 8C57 LDD R5,Z+31
042C 1542 CP R20,R2
042D 0553 CPC R21,R3
042E 0564 CPC R22,R4
042F 0575 CPC R23,R5
0430 F008 BCS 0x0432
0431 C033 RJMP 0x0465
0432 E740 LDI R20,0x70
0433 E151 LDI R21,0x11
0434 E061 LDI R22,1
0435 E070 LDI R23,0
0436 01FE MOVW R30,R28
0437 8F44 STD Z+28,R20
0438 8F55 STD Z+29,R21
0439 8F66 STD Z+30,R22
043A 8F77 STD Z+31,R23
(0245) }
043B C029 RJMP 0x0465
(0246) else
(0247) {
(0248) ulFY=ulFY-100;
043C E644 LDI R20,0x64
043D E050 LDI R21,0
043E E060 LDI R22,0
043F E070 LDI R23,0
0440 01FE MOVW R30,R28
0441 8C24 LDD R2,Z+28
0442 8C35 LDD R3,Z+29
0443 8C46 LDD R4,Z+30
0444 8C57 LDD R5,Z+31
0445 1A24 SUB R2,R20
0446 0A35 SBC R3,R21
0447 0A46 SBC R4,R22
0448 0A57 SBC R5,R23
0449 01FE MOVW R30,R28
044A 8E24 STD Z+28,R2
044B 8E35 STD Z+29,R3
044C 8E46 STD Z+30,R4
044D 8E57 STD Z+31,R5
(0249) if(ulFY<40000) ulFY=40000;
044E E440 LDI R20,0x40
044F E95C LDI R21,0x9C
0450 E060 LDI R22,0
0451 E070 LDI R23,0
0452 01FE MOVW R30,R28
0453 8C24 LDD R2,Z+28
0454 8C35 LDD R3,Z+29
0455 8C46 LDD R4,Z+30
0456 8C57 LDD R5,Z+31
0457 1624 CP R2,R20
0458 0635 CPC R3,R21
0459 0646 CPC R4,R22
045A 0657 CPC R5,R23
045B F448 BCC 0x0465
045C E440 LDI R20,0x40
045D E95C LDI R21,0x9C
045E E060 LDI R22,0
045F E070 LDI R23,0
0460 01FE MOVW R30,R28
0461 8F44 STD Z+28,R20
0462 8F55 STD Z+29,R21
0463 8F66 STD Z+30,R22
0464 8F77 STD Z+31,R23
(0250) }
(0251) OutputFrequency(ulFY,ulFX);
0465 01FE MOVW R30,R28
0466 A824 LDD R2,Z+52
0467 A835 LDD R3,Z+53
0468 A846 LDD R4,Z+54
0469 A857 LDD R5,Z+55
046A 8228 STD Y+0,R2
046B 8239 STD Y+1,R3
046C 824A STD Y+2,R4
046D 825B STD Y+3,R5
046E 01FE MOVW R30,R28
046F 8D04 LDD R16,Z+28
0470 8D15 LDD R17,Z+29
0471 8D26 LDD R18,Z+30
0472 8D37 LDD R19,Z+31
0473 DD3C RCALL _OutputFrequency
(0252) }
(0253)
(0254) NOP();
0474 0000 NOP
(0255) NOP();
0475 0000 NOP
0476 CF34 RJMP 0x03AB
(0256) }
(0257)
(0258)
(0259) while(1)
(0260) {
(0261) usAD_GetData(usADDATA);
0477 018E MOVW R16,R28
0478 5E0C SUBI R16,0xEC
0479 4F1F SBCI R17,0xFF
047A 940E11A9 CALL _usAD_GetData
(0262) if(usADDATA[QDD]>0x6FFF)
047C EF8F LDI R24,0xFF
047D E69F LDI R25,0x6F
047E 8C2A LDD R2,Y+26
047F 8C3B LDD R3,Y+27
0480 1582 CP R24,R2
0481 0593 CPC R25,R3
0482 F410 BCC 0x0485
(0263) ucFX=ucFX+1;
0483 94A3 INC R10
0484 C001 RJMP 0x0486
(0264) else //if(usADDATA[QDD]<10)
(0265) ucFX=ucFX-1;
0485 94AA DEC R10
(0266) delayms(3);
0486 E003 LDI R16,3
0487 940E0F07 CALL _delayms
(0267) OutputFrequency3(ucHex2BCD(ucFX));
0489 2D0A MOV R16,R10
048A DBF7 RCALL _ucHex2BCD
048B DDC0 RCALL _OutputFrequency3
048C CFEA RJMP 0x0477
(0268)
(0269) }
(0270)
(0271)
(0272)
(0273) while(1)
(0274) {
(0275) usAD_GetData(usADDATA);
048D 018E MOVW R16,R28
048E 5E0C SUBI R16,0xEC
048F 4F1F SBCI R17,0xFF
0490 940E11A9 CALL _usAD_GetData
(0276) if(usADDATA[QDD]>100)
0492 E684 LDI R24,0x64
0493 E090 LDI R25,0
0494 8C2A LDD R2,Y+26
0495 8C3B LDD R3,Y+27
0496 1582 CP R24,R2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -