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

📄 main.s

📁 ATmega128和ads7864实现ATP闭环控制
💻 S
📖 第 1 页 / 共 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 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 + -