📄 main.s
字号:
ldd R16,y+28
ldd R17,y+29
andi R16,1
andi R17,0
xcall int2fp
st -y,R19
st -y,R18
st -y,R17
st -y,R16
xcall add32f
movw R30,R28
std z+12,R16
std z+13,R17
std z+14,R18
std z+15,R19
.dbline 359
ldi R16,<L18
ldi R17,>L18
xcall lpm32
st -y,R19
st -y,R18
st -y,R17
st -y,R16
; stack offset 4
ldd R16,y+30
ldd R17,y+31
lsr R17
ror R16
xcall int2fp
st -y,R19
st -y,R18
st -y,R17
st -y,R16
xcall empy32fs
; stack offset 4
ldd R16,y+30
ldd R17,y+31
andi R16,1
andi R17,0
xcall int2fp
st -y,R19
st -y,R18
st -y,R17
st -y,R16
xcall add32f
movw R30,R28
std z+16,R16
std z+17,R17
std z+18,R18
std z+19,R19
.dbline 360
movw R30,R28
ldd R2,z+4
ldd R3,z+5
ldd R4,z+6
ldd R5,z+7
st -y,R5
st -y,R4
st -y,R3
st -y,R2
movw R30,R28
; stack offset 4
ldd R2,z+12
ldd R3,z+13
ldd R4,z+14
ldd R5,z+15
st -y,R5
st -y,R4
st -y,R3
st -y,R2
xcall add32fs
movw R30,R28
; stack offset 4
ldd R2,z+16
ldd R3,z+17
ldd R4,z+18
ldd R5,z+19
st -y,R5
st -y,R4
st -y,R3
st -y,R2
xcall add32fs
movw R30,R28
; stack offset 4
ldd R2,z+20
ldd R3,z+21
ldd R4,z+22
ldd R5,z+23
st -y,R5
st -y,R4
st -y,R3
st -y,R2
xcall add32f
movw R30,R28
std z+32,R16
std z+33,R17
std z+34,R18
std z+35,R19
.dbline 362
movw R30,R28
ldd R2,z+4
ldd R3,z+5
ldd R4,z+6
ldd R5,z+7
st -y,R5
st -y,R4
st -y,R3
st -y,R2
movw R30,R28
; stack offset 4
ldd R2,z+12
ldd R3,z+13
ldd R4,z+14
ldd R5,z+15
st -y,R5
st -y,R4
st -y,R3
st -y,R2
xcall add32fs
movw R30,R28
; stack offset 4
ldd R2,z+16
ldd R3,z+17
ldd R4,z+18
ldd R5,z+19
st -y,R5
st -y,R4
st -y,R3
st -y,R2
xcall sub32fs
movw R30,R28
; stack offset 4
ldd R2,z+20
ldd R3,z+21
ldd R4,z+22
ldd R5,z+23
st -y,R5
st -y,R4
st -y,R3
st -y,R2
xcall sub32fs
movw R30,R28
; stack offset 4
ldd R2,z+36
ldd R3,z+37
ldd R4,z+38
ldd R5,z+39
st -y,R5
st -y,R4
st -y,R3
st -y,R2
xcall div32f
movw R30,R28
std z+36,R16
std z+37,R17
std z+38,R18
std z+39,R19
.dbline 364
ldi R16,<L109
ldi R17,>L109
xcall lpm32
st -y,R19
st -y,R18
st -y,R17
st -y,R16
movw R30,R28
; stack offset 4
ldd R2,z+40
ldd R3,z+41
ldd R4,z+42
ldd R5,z+43
st -y,R5
st -y,R4
st -y,R3
st -y,R2
xcall empy32fs
movw R30,R28
; stack offset 4
ldd R2,z+60
ldd R3,z+61
ldd R4,z+62
ldd R5,z+63
st -y,R5
st -y,R4
st -y,R3
st -y,R2
xcall div32f
movw R30,R28
std z+44,R16
std z+45,R17
std z+46,R18
std z+47,R19
.dbline 366
ldi R16,<L110
ldi R17,>L110
xcall lpm32
st -y,R19
st -y,R18
st -y,R17
st -y,R16
movw R30,R28
; stack offset 4
ldd R2,z+48
ldd R3,z+49
ldd R4,z+50
ldd R5,z+51
st -y,R5
st -y,R4
st -y,R3
st -y,R2
xcall sub32f
movw R30,R28
std z+48,R16
std z+49,R17
std z+50,R18
std z+51,R19
.dbline 367
movw R30,R28
ldd R2,z+48
ldd R3,z+49
ldd R4,z+50
ldd R5,z+51
std y+0,R2
std y+1,R3
std y+2,R4
std y+3,R5
movw R30,R28
ldd R16,z+28
ldd R17,z+29
ldd R18,z+30
ldd R19,z+31
xcall _ulGetFrequency
movw R30,R28
std z+28,R16
std z+29,R17
std z+30,R18
std z+31,R19
.dbline 368
movw R30,R28
ldd R2,z+52
ldd R3,z+53
ldd R4,z+54
ldd R5,z+55
std y+0,R2
std y+1,R3
std y+2,R4
std y+3,R5
movw R30,R28
ldd R16,z+28
ldd R17,z+29
ldd R18,z+30
ldd R19,z+31
xcall _OutputFrequency
.dbline 369
L94:
.dbline 352
ldi R20,1
ldi R21,0
ldi R22,0
ldi R23,0
movw R30,R28
ldd R2,z+40
ldd R3,z+41
ldd R4,z+42
ldd R5,z+43
add R2,R20
adc R3,R21
adc R4,R22
adc R5,R23
movw R30,R28
std z+40,R2
std z+41,R3
std z+42,R4
std z+43,R5
L96:
.dbline 352
ldi R20,232
ldi R21,3
ldi R22,0
ldi R23,0
movw R30,R28
ldd R2,z+40
ldd R3,z+41
ldd R4,z+42
ldd R5,z+43
cp R2,R20
cpc R3,R21
cpc R4,R22
cpc R5,R23
brsh X6
xjmp L93
X6:
L91:
.dbline 351
xjmp L90
L111:
.dbline 372
nop
L112:
.dbline 371
; {
; delayms(10);
; usAD_GetData(usADDATA);
; dADDATA[0]=(double)usADDATA[0];
; dADDATA[1]=(double)usADDATA[1];
; dADDATA[2]=(double)usADDATA[2];
; dADDATA[3]=(double)usADDATA[3];
; dTotalData=dADDATA[QDA]+dADDATA[QDB]+dADDATA[QDC]+dADDATA[QDD];
;
; dEy=(dADDATA[QDA]+dADDATA[QDB]-dADDATA[QDC]-dADDATA[QDD])/dTotalData;
;
; dDeltaRad=(dEy*RadPer1MHz)/dEyTotal;//偏移的弧度
;
; dRad2=Rad0-dDeltaRad;
; ulFY=ulGetFrequency(ulFY,dRad2);
; OutputFrequency(ulFY,ulFX);
; }
;
; while(1)
xjmp L111
L114:
.dbline 379
; NOP();
;
;
;
;
;
; while(1)
; {
.dbline 380
; NOP();
nop
.dbline 382
; //ulAD_GetData(ulADDATA);
; usAD_GetData(usADDATA);
movw R16,R28
subi R16,236 ; offset = 20
sbci R17,255
xcall _usAD_GetData
.dbline 383
; dADDATA[0]=(double)usADDATA[0];
ldi R16,<L18
ldi R17,>L18
xcall lpm32
st -y,R19
st -y,R18
st -y,R17
st -y,R16
; stack offset 4
ldd R16,y+24
ldd R17,y+25
lsr R17
ror R16
xcall int2fp
st -y,R19
st -y,R18
st -y,R17
st -y,R16
xcall empy32fs
; stack offset 4
ldd R16,y+24
ldd R17,y+25
andi R16,1
andi R17,0
xcall int2fp
st -y,R19
st -y,R18
st -y,R17
st -y,R16
xcall add32f
movw R30,R28
std z+4,R16
std z+5,R17
std z+6,R18
std z+7,R19
.dbline 384
; dADDATA[1]=(double)usADDATA[1];
ldi R16,<L18
ldi R17,>L18
xcall lpm32
st -y,R19
st -y,R18
st -y,R17
st -y,R16
; stack offset 4
ldd R16,y+26
ldd R17,y+27
lsr R17
ror R16
xcall int2fp
st -y,R19
st -y,R18
st -y,R17
st -y,R16
xcall empy32fs
; stack offset 4
ldd R16,y+26
ldd R17,y+27
andi R16,1
andi R17,0
xcall int2fp
st -y,R19
st -y,R18
st -y,R17
st -y,R16
xcall add32f
movw R30,R28
std z+8,R16
std z+9,R17
std z+10,R18
std z+11,R19
.dbline 385
; dADDATA[2]=(double)usADDATA[2];
ldi R16,<L18
ldi R17,>L18
xcall lpm32
st -y,R19
st -y,R18
st -y,R17
st -y,R16
; stack offset 4
ldd R16,y+28
ldd R17,y+29
lsr R17
ror R16
xcall int2fp
st -y,R19
st -y,R18
st -y,R17
st -y,R16
xcall empy32fs
; stack offset 4
ldd R16,y+28
ldd R17,y+29
andi R16,1
andi R17,0
xcall int2fp
st -y,R19
st -y,R18
st -y,R17
st -y,R16
xcall add32f
movw R30,R28
std z+12,R16
std z+13,R17
std z+14,R18
std z+15,R19
.dbline 386
; dADDATA[3]=(double)usADDATA[3];
ldi R16,<L18
ldi R17,>L18
xcall lpm32
st -y,R19
st -y,R18
st -y,R17
st -y,R16
; stack offset 4
ldd R16,y+30
ldd R17,y+31
lsr R17
ror R16
xcall int2fp
st -y,R19
st -y,R18
st -y,R17
st -y,R16
xcall empy32fs
; stack offset 4
ldd R16,y+30
ldd R17,y+31
andi R16,1
andi R17,0
xcall int2fp
st -y,R19
st -y,R18
st -y,R17
st -y,R16
xcall add32f
movw R30,R28
std z+16,R16
std z+17,R17
std z+18,R18
std z+19,R19
.dbline 387
; dTotalData=dADDATA[QDA]+dADDATA[QDB]+dADDATA[QDC]+dADDATA[QDD];
movw R30,R28
ldd R2,z+4
ldd R3,z+5
ldd R4,z+6
ldd R5,z+7
st -y,R5
st -y,R4
st -y,R3
st -y,R2
movw R30,R28
; stack offset 4
ldd R2,z+12
ldd R3,z+13
ldd R4,z+14
ldd R5,z+15
st -y,R5
st -y,R4
st -y,R3
st -y,R2
xcall add32fs
movw R30,R28
; stack offset 4
ldd R2,z+16
ldd R3,z+17
ldd R4,z+18
ldd R5,z+19
st -y,R5
st -y,R4
st -y,R3
st -y,R2
xcall add32fs
movw R30,R28
; stack offset 4
ldd R2,z+20
ldd R3,z+21
ldd R4,z+22
ldd R5,z+23
st -y,R5
st -y,R4
st -y,R3
st -y,R2
xcall add32f
movw R30,R28
std z+32,R16
std z+33,R17
std z+34,R18
std z+35,R19
.dbline 390
;
;
; dEx=(dADDATA[QDA]+dADDATA[QDD]-dADDATA[QDB]-dADDATA[QDC])/dTotalData;
movw R30,R28
ldd R2,z+4
ldd R3,z+5
ldd R4,z+6
ldd R5,z+7
st -y,R5
st -y,R4
st -y,R3
st -y,R2
movw R30,R28
; stack offset 4
ldd R2,z+20
ldd R3,z+21
ldd R4,z+22
ldd R5,z+23
st -y,R5
st -y,R4
st -y,R3
st -y,R2
xcall add32fs
movw R30,R28
; stack offset 4
ldd R2,z+12
ldd R3,z+13
ldd R4,z+14
ldd R5,z+15
st -y,R5
st -y,R4
st -y,R3
st -y,R2
xcall sub32fs
movw R30,R28
; stack offset 4
ldd R2,z+16
ldd R3,z+17
ldd R4,z+18
ldd R5,z+19
st -y,R5
st -y,R4
st -y,R3
st -y,R2
xcall sub32fs
movw R30,R28
; stack offset 4
ldd R2,z+36
ldd R3,z+37
ldd R4,z+38
ldd R5,z+39
st -y,R5
st -y,R4
st -y,R3
st -y,R2
xcall div32f
movw R30,R28
subi R30,184 ; addi 72
sbci R31,255
std z+0,R16
std z+1,R17
std z+2,R18
std z+3,R19
.dbline 391
; dEy=(dADDATA[QDA]+dADDATA[QDB]-dADDATA[QDC]-dADDATA[QDD])/dTotalData;
movw R30,R28
ldd R2,z+4
ldd R3,z+5
ldd R4,z+6
ldd R5,z+7
st -y,R5
st -y,R4
st -y,R3
st -y,R2
movw R30,R28
; stack offset 4
ldd R2,z+12
ldd R3,z+13
ldd R4,z+14
ldd R5,z+15
st -y,R5
st -y,R4
st -y,R3
st -y,R2
xcall add32fs
movw R30,R28
; stack offset 4
ldd R2,z+16
ldd R3,z+17
ldd R4,z+18
ldd R5,z+19
st -y,R5
st -y,R4
st -y,R3
st -y,R2
xcall sub32fs
movw R30,R28
; stack offset 4
ldd R2,z+20
ldd R3,z+21
ldd R4,z+22
ldd R5,z+23
st -y,R5
st -y,R4
st -y,R3
st -y,R2
xcall sub32fs
movw R30,R28
; stack offset 4
ldd R2,z+36
ldd R3,z+37
ldd R4,z+38
ldd R5,z+39
st -y,R5
st -y,R4
st -y,R3
st -y,R2
xcall div32f
movw R30,R28
std z+36,R16
std z+37,R17
std z+38,R18
std z+39,R19
.dbline 394
;
;
; if(dEy!=0)
movw R30,R28
ldd R2,z+36
ldd R3,z+37
ldd R4,z+38
ldd R5,z+39
st -y,R5
st -y,R4
st -y,R3
st -y,R2
ldi R16,<L60
ldi R17,>L60
xcall lpm32
st -y,R19
st -y,R18
st -y,R17
st -y,R16
xcall cmp32f
brne X7
xjmp L132
X7:
.dbline 395
; {
.dbline 396
; if(dEy>0)
ldi R16,<L60
ldi R17,>L60
xcall lpm32
st -y,R19
st -y,R18
st -y,R17
st -y,R16
movw R30,R28
; stack offset 4
ldd R2,z+40
ldd R3,z+41
ldd R4,z+42
ldd R5,z+43
st -y,R5
st -y,R4
st -y,R3
st -y,R2
xcall cmp32f
brge L134
.dbline 397
; {
.dbline 398
; if(ulFY<70000) ulFY=ulFY+100;
ldi R20,112
ldi R21,17
ldi R22,1
ldi R23,0
movw R30,R28
ldd R2,z+28
ldd R3,z+29
ldd R4,z+30
ldd R5,z+31
cp R2,R20
cpc R3,R21
cpc R4,R22
cpc R5,R23
brlo X8
xjmp L135
X8:
.dbline 398
ldi R20,100
ldi R21,0
ldi R22,0
ldi R23,0
movw R30,R28
ldd R2,z+28
ldd R3,z+29
ldd R4,z+30
ldd R5,z+31
add R2,R20
adc R3,R21
adc R4,R22
adc R5,R23
movw R30,R28
std z+28,R2
std z+29,R3
std z+30,R4
std z+31,R5
.dbline 399
; }
xjmp L135
L134:
.dbline 401
; else
; {
.dbline 402
; if(ulFY>40000) ulFY=ulFY-100;
ldi R20,64
ldi R21,156
ldi R22,0
ldi R23,0
movw R30,R28
ldd R2,z+28
ldd R3,z+29
ldd R4,z+30
ldd R5,z+31
cp R20,R2
cpc R21,R3
cpc R22,R4
cpc R23,R5
brsh L138
.dbline 402
ldi R20,100
ldi R21,0
ldi R22,0
ldi R23,0
movw R30,R28
ldd R2,z+28
ldd R3,z+29
ldd R4,z+30
ldd R5,z+31
sub R2,R20
sbc R3,R21
sbc R4,R22
sbc R5,R23
movw R30,R28
std z+28,R2
std z+29,R3
std z+30,R4
std z+31,R5
L138:
.dbline 403
; }
L135:
.dbline 405
; // OutputFrequency(ulFY,ulFX);
; }
L132:
.dbline 407
nop
.dbline 408
nop
.dbline 409
L115:
.dbline 378
xjmp L114
L140:
.dbline 413
nop
L141:
.dbline 412
xjmp L140
X1:
.dbline -2
L27:
adiw R28,63
adiw R28,17 ; offset = 80
.dbline 0 ; func end
ret
.dbsym l ucFlag 5 c
.dbsym l dFy 76 D
.dbsym l k 5 s
.dbsym l j 5 s
.dbsym l dEx 72 D
.dbsym l dEy2T 68 D
.dbsym l dEy1T 64 D
.dbsym r ucFX 10 c
.dbsym l slEy 60 L
.dbsym l dEyTotal 56 D
.dbsym l ulFX 52 l
.dbsym l dRad2 48 D
.dbsym l dDeltaRad 44 D
.dbsym l i 40 l
.dbsym l dEy 36 D
.dbsym l dTotalData 32 D
.dbsym l ulFY 28 l
.dbsym l usADDATA 20 A[8:4]s
.dbsym l dADDATA 4 A[16:4]D
.dbend
.area lit(rom, con, rel)
L110:
.word 0xb884,0x3db2
L109:
.word 0x126f,0x3a83
L89:
.word 0x0,0x447a
L60:
.word 0x0,0x0
L26:
.word 0x0,0x4f00
L23:
.word 0xe30d,0xc09f
L22:
.word 0x7e15,0xc136
L21:
.word 0x71e0,0x409d
L20:
.word 0x0,0xbf80
L19:
.word 0x2400,0x4974
L18:
.word 0x0,0x4000
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -