dataprotask.lst

来自「cs5460a做功率表用 cs5460a做功率表用 cs5460a做功率表」· LST 代码 · 共 556 行 · 第 1/2 页

LST
556
字号
 241 0086 0196      		adiw r24,1
 242 0088 00D0      		rcall Rd5460A
 158:driver/DataProTask.c **** 		        CS_AD_B = 1;
 244               	.LM13:
 245 008a A89A      		sbi 53-0x20,0
 159:driver/DataProTask.c **** 
 160:driver/DataProTask.c ****                 if ((AD_Buf[0] & 0x80) && fAdRunning_A) 
 247               	.LM14:
 248 008c 8981      		ldd r24,Y+1
 249 008e 87FF      		sbrs r24,7
 250 0090 13C0      		rjmp .L8
 251 0092 8091 0000 		lds r24,fAdRunning_A
 252 0096 8823      		tst r24
 253 0098 79F0      		breq .L8
 161:driver/DataProTask.c ****                    {  Step++;  
 255               	.LM15:
 256 009a 8091 0000 		lds r24,Step.0
 257 009e 8F5F      		subi r24,lo8(-(1))
 258 00a0 8093 0000 		sts Step.0,r24
 162:driver/DataProTask.c **** 				       Detect_B1++;
 260               	.LM16:
 261 00a4 8091 0000 		lds r24,Detect_B1
 262 00a8 9091 0000 		lds r25,(Detect_B1)+1
 263 00ac 0196      		adiw r24,1
 264 00ae 9093 0000 		sts (Detect_B1)+1,r25
 265 00b2 8093 0000 		sts Detect_B1,r24
 266 00b6 7BC0      		rjmp .L1
 267               	.L8:
 163:driver/DataProTask.c **** 					}
 164:driver/DataProTask.c ****                 else
 165:driver/DataProTask.c ****                   {
 166:driver/DataProTask.c **** 					Detect_B0++;
 269               	.LM17:
 270 00b8 8091 0000 		lds r24,Detect_B0
 271 00bc 9091 0000 		lds r25,(Detect_B0)+1
 272 00c0 0196      		adiw r24,1
 273 00c2 9093 0000 		sts (Detect_B0)+1,r25
 274 00c6 8093 0000 		sts Detect_B0,r24
 167:driver/DataProTask.c ****                     fAdRunning_A = 0;
 276               	.LM18:
 277 00ca 1092 0000 		sts fAdRunning_A,__zero_reg__
 278 00ce 06C0      		rjmp .L15
 279               	.L5:
 168:driver/DataProTask.c **** 		        	Clear5460A();
 169:driver/DataProTask.c **** 			        ReadAD.fGetTime = 0;
 170:driver/DataProTask.c ****       		        ReadAD.WaitTime = _1S;
 171:driver/DataProTask.c **** 		             }
 172:driver/DataProTask.c **** 		  } else {
 173:driver/DataProTask.c **** 		  	Rest5460A_Time--;     //屏蔽前两次AD转换
 281               	.LM19:
 282 00d0 8150      		subi r24,lo8(-(-1))
 283 00d2 8093 0000 		sts Rest5460A_Time,r24
 174:driver/DataProTask.c ****     	  	fAdRunning_A = 1;
 285               	.LM20:
 286 00d6 81E0      		ldi r24,lo8(1)
 287 00d8 8093 0000 		sts fAdRunning_A,r24
 288               	.L15:
 175:driver/DataProTask.c **** 			Clear5460A();
 290               	.LM21:
 291 00dc 00D0      		rcall Clear5460A
 292 00de 5FC0      		rjmp .L14
 293               	.L11:
 176:driver/DataProTask.c **** 			ReadAD.fGetTime = 0;
 177:driver/DataProTask.c ****       		ReadAD.WaitTime = _1S;	  	
 178:driver/DataProTask.c **** 		 }
 179:driver/DataProTask.c **** 		 break;
 180:driver/DataProTask.c **** 
 181:driver/DataProTask.c **** 		case 1:
 182:driver/DataProTask.c **** 		  Sync_5460A();                 /*同步命令*/
 295               	.LM22:
 296 00e0 00D0      		rcall Sync_5460A
 183:driver/DataProTask.c **** 		  Clear5460A();
 298               	.LM23:
 299 00e2 00D0      		rcall Clear5460A
 184:driver/DataProTask.c **** 
 185:driver/DataProTask.c **** 		  CS_AD_A = 0;			
 301               	.LM24:
 302 00e4 AD98      		cbi 53-0x20,5
 186:driver/DataProTask.c ****           Rd5460A(AD_Buf,0x14);       //读A相功率值		
 304               	.LM25:
 305 00e6 64E1      		ldi r22,lo8(20)
 306 00e8 CE01      		movw r24,r28
 307 00ea 0196      		adiw r24,1
 308 00ec 00D0      		rcall Rd5460A
 187:driver/DataProTask.c ****           CS_AD_A = 1;		  
 310               	.LM26:
 311 00ee AD9A      		sbi 53-0x20,5
 188:driver/DataProTask.c **** 		  temp1 = AD_Buf[0] << 8;
 313               	.LM27:
 314 00f0 8981      		ldd r24,Y+1
 315 00f2 9927      		clr r25
 316 00f4 182F      		mov r17,r24
 317 00f6 0027      		clr r16
 189:driver/DataProTask.c **** 		  temp1 += AD_Buf[1]; 
 319               	.LM28:
 320 00f8 7E01      		movw r14,r28
 321 00fa 0894      		sec
 322 00fc E11C      		adc r14,__zero_reg__
 323 00fe F11C      		adc r15,__zero_reg__
 324 0100 F701      		movw r30,r14
 325 0102 8181      		ldd r24,Z+1
 326 0104 080F      		add r16,r24
 327 0106 111D      		adc r17,__zero_reg__
 190:driver/DataProTask.c **** 		  
 191:driver/DataProTask.c **** 		  CS_AD_B = 0;			
 329               	.LM29:
 330 0108 A898      		cbi 53-0x20,0
 192:driver/DataProTask.c ****           Rd5460A(AD_Buf,0x14);       
 332               	.LM30:
 333 010a 64E1      		ldi r22,lo8(20)
 334 010c C701      		movw r24,r14
 335 010e 00D0      		rcall Rd5460A
 193:driver/DataProTask.c ****           CS_AD_B = 1;		  
 337               	.LM31:
 338 0110 A89A      		sbi 53-0x20,0
 194:driver/DataProTask.c **** 		  temp2 = AD_Buf[0] << 8;
 340               	.LM32:
 341 0112 8981      		ldd r24,Y+1
 342 0114 9927      		clr r25
 343 0116 982F      		mov r25,r24
 344 0118 8827      		clr r24
 195:driver/DataProTask.c **** 		  temp2 += AD_Buf[1];
 346               	.LM33:
 347 011a F701      		movw r30,r14
 348 011c 2181      		ldd r18,Z+1
 349 011e 820F      		add r24,r18
 350 0120 911D      		adc r25,__zero_reg__
 196:driver/DataProTask.c **** 
 197:driver/DataProTask.c **** 		  temp1 += temp2; 
 352               	.LM34:
 353 0122 080F      		add r16,r24
 354 0124 191F      		adc r17,r25
 198:driver/DataProTask.c **** 		  
 199:driver/DataProTask.c **** 		  Ps_Neg = 0;
 356               	.LM35:
 357 0126 1092 0000 		sts Ps_Neg,__zero_reg__
 200:driver/DataProTask.c **** 		  if (temp1 > 0x8000){
 359               	.LM36:
 360 012a F0E8      		ldi r31,hi8(-32767)
 361 012c 0130      		cpi r16,lo8(-32767)
 362 012e 1F07      		cpc r17,r31
 363 0130 30F0      		brlo .L12
 201:driver/DataProTask.c **** 			 	temp1 = 0 - temp1;	        //功率为负
 365               	.LM37:
 366 0132 1095      		com r17
 367 0134 0195      		neg r16
 368 0136 1F4F      		sbci r17,lo8(-1)
 202:driver/DataProTask.c **** 				Ps_Neg = 1;				
 370               	.LM38:
 371 0138 81E0      		ldi r24,lo8(1)
 372 013a 8093 0000 		sts Ps_Neg,r24
 373               	.L12:
 203:driver/DataProTask.c **** 		  }		   		   
 204:driver/DataProTask.c **** 		  AD_Buf[0] = temp1 >> 8;
 375               	.LM39:
 376 013e 812F      		mov r24,r17
 377 0140 9927      		clr r25
 378 0142 8983      		std Y+1,r24
 205:driver/DataProTask.c **** 		  AD_Buf[1] = (uint8)temp1;
 380               	.LM40:
 381 0144 F701      		movw r30,r14
 382 0146 0183      		std Z+1,r16
 206:driver/DataProTask.c **** 		  temp2 = DealRms(AD_Buf,0x6F20);		  
 384               	.LM41:
 385 0148 40E2      		ldi r20,lo8(28448)
 386 014a 5FE6      		ldi r21,hi8(28448)
 387 014c 60E0      		ldi r22,hlo8(28448)
 388 014e 70E0      		ldi r23,hhi8(28448)
 389 0150 C701      		movw r24,r14
 390 0152 00D0      		rcall DealRms
 207:driver/DataProTask.c **** 		  Ps = (uint32)temp2 * PtVal * CtVal;   //计算一次值功率	
 392               	.LM42:
 393 0154 7C01      		movw r14,r24
 394 0156 0027      		clr r16
 395 0158 1127      		clr r17
 396 015a 8091 0000 		lds r24,PtVal
 397 015e 9091 0000 		lds r25,(PtVal)+1
 398 0162 9C01      		movw r18,r24
 399 0164 4427      		clr r20
 400 0166 5527      		clr r21
 401 0168 C801      		movw r24,r16
 402 016a B701      		movw r22,r14
 403 016c 00D0      		rcall __mulsi3
 404 016e 7B01      		movw r14,r22
 405 0170 8C01      		movw r16,r24
 406 0172 8091 0000 		lds r24,CtVal
 407 0176 9091 0000 		lds r25,(CtVal)+1
 408 017a 9C01      		movw r18,r24
 409 017c 4427      		clr r20
 410 017e 5527      		clr r21
 411 0180 C801      		movw r24,r16
 412 0182 B701      		movw r22,r14
 413 0184 00D0      		rcall __mulsi3
 414 0186 DC01      		movw r26,r24
 415 0188 CB01      		movw r24,r22
 416 018a 8093 0000 		sts Ps,r24
 417 018e 9093 0000 		sts (Ps)+1,r25
 418 0192 A093 0000 		sts (Ps)+2,r26
 419 0196 B093 0000 		sts (Ps)+3,r27
 208:driver/DataProTask.c **** 		  Step = 0;
 421               	.LM43:
 422 019a 1092 0000 		sts Step.0,__zero_reg__
 423               	.L14:
 209:driver/DataProTask.c **** 		  ReadAD.fGetTime = 0;
 425               	.LM44:
 426 019e 1092 0000 		sts ReadAD,__zero_reg__
 210:driver/DataProTask.c ****       	  ReadAD.WaitTime = _1S;        	
 428               	.LM45:
 429 01a2 84E6      		ldi r24,lo8(100)
 430 01a4 90E0      		ldi r25,hi8(100)
 431 01a6 9093 0000 		sts (ReadAD+1)+1,r25
 432 01aa 8093 0000 		sts ReadAD+1,r24
 433               	.L1:
 434               	/* epilogue: frame size=4 */
 435 01ae 2496      		adiw r28,4
 436 01b0 0FB6      		in __tmp_reg__,__SREG__
 437 01b2 F894      		cli
 438 01b4 DEBF      		out __SP_H__,r29
 439 01b6 0FBE      		out __SREG__,__tmp_reg__
 440 01b8 CDBF      		out __SP_L__,r28
 441 01ba DF91      		pop r29
 442 01bc CF91      		pop r28
 443 01be 1F91      		pop r17
 444 01c0 0F91      		pop r16
 445 01c2 FF90      		pop r15
 446 01c4 EF90      		pop r14
 447 01c6 0895      		ret
 448               	/* epilogue end (size=13) */
 449               	/* function DealDataMainLoop size 229 (202) */
 457               	.Lscope0:
 458               		.comm fAdRunning_A,1,1
 459               		.comm fAdRunning_B,1,1
 460               		.comm V_sign_A,1,1
 461               		.comm I_sign_A,1,1
 462               		.comm V_sign_B,1,1
 463               		.comm I_sign_B,1,1
 464               		.comm Ps,4,1
 480               		.text
 482               	Letext:
 483               	/* File "driver/DataProTask.c": code  229 = 0x00e5 ( 202), prologues  14, epilogues  13 */
DEFINED SYMBOLS
                            *ABS*:00000000 DataProTask.c
C:\DOCUME~1\e4ee\LOCALS~1\Temp/ccARaaaa.s:3      *ABS*:0000003f __SREG__
C:\DOCUME~1\e4ee\LOCALS~1\Temp/ccARaaaa.s:4      *ABS*:0000003e __SP_H__
C:\DOCUME~1\e4ee\LOCALS~1\Temp/ccARaaaa.s:5      *ABS*:0000003d __SP_L__
C:\DOCUME~1\e4ee\LOCALS~1\Temp/ccARaaaa.s:6      *ABS*:00000000 __tmp_reg__
C:\DOCUME~1\e4ee\LOCALS~1\Temp/ccARaaaa.s:7      *ABS*:00000001 __zero_reg__
C:\DOCUME~1\e4ee\LOCALS~1\Temp/ccARaaaa.s:105    .data:00000000 ReadAD
C:\DOCUME~1\e4ee\LOCALS~1\Temp/ccARaaaa.s:113    .bss:00000000 Ps_Neg
C:\DOCUME~1\e4ee\LOCALS~1\Temp/ccARaaaa.s:119    .bss:00000001 Detect_T1
C:\DOCUME~1\e4ee\LOCALS~1\Temp/ccARaaaa.s:125    .bss:00000003 Detect_T0
C:\DOCUME~1\e4ee\LOCALS~1\Temp/ccARaaaa.s:131    .bss:00000005 Detect_B0
C:\DOCUME~1\e4ee\LOCALS~1\Temp/ccARaaaa.s:137    .bss:00000007 Detect_B1
C:\DOCUME~1\e4ee\LOCALS~1\Temp/ccARaaaa.s:143    .bss:00000009 Detect_A0
C:\DOCUME~1\e4ee\LOCALS~1\Temp/ccARaaaa.s:149    .bss:0000000b Detect_A1
                             .bss:0000000d Step.0
C:\DOCUME~1\e4ee\LOCALS~1\Temp/ccARaaaa.s:156    .text:00000000 DealDataMainLoop
                            *COM*:00000001 fAdRunning_A
                            *COM*:00000004 Ps
                            *COM*:00000001 fAdRunning_B
                            *COM*:00000001 V_sign_A
                            *COM*:00000001 I_sign_A
                            *COM*:00000001 V_sign_B
                            *COM*:00000001 I_sign_B
C:\DOCUME~1\e4ee\LOCALS~1\Temp/ccARaaaa.s:482    .text:000001c8 Letext

UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
Rest5460A_Time
Rd5460A
Clear5460A
Sync_5460A
DealRms
PtVal
__mulsi3
CtVal

⌨️ 快捷键说明

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