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

📄 main.lst

📁 AVR单片机ADC源码
💻 LST
📖 第 1 页 / 共 2 页
字号:
 203 007a 261B      		sub r18,r22
 204 007c 370B      		sbc r19,r23
 205 007e 8A2F      		mov r24,r26
 206 0080 9927      		clr r25
 207 0082 8217      		cp r24,r18
 208 0084 9307      		cpc r25,r19
 209 0086 88F4      		brsh .L20
  56:main.c        **** 			{
  57:main.c        **** 				max_value=g_aAdValue[i]-ret;
 211               	.LM26:
 212 0088 A081      		ld r26,Z
 213 008a A61B      		sub r26,r22
  58:main.c        **** 				max_id=i;
 215               	.LM27:
 216 008c C42F      		mov r28,r20
 217 008e 0DC0      		rjmp .L20
 218               	.L22:
  59:main.c        **** 			}
  60:main.c        **** 		}
  61:main.c        **** 		else
  62:main.c        **** 		{
  63:main.c        **** 			if(ret-g_aAdValue[i]>min_value)
 220               	.LM28:
 221 0090 CB01      		movw r24,r22
 222 0092 821B      		sub r24,r18
 223 0094 930B      		sbc r25,r19
 224 0096 9C01      		movw r18,r24
 225 0098 852F      		mov r24,r21
 226 009a 9927      		clr r25
 227 009c 8217      		cp r24,r18
 228 009e 9307      		cpc r25,r19
 229 00a0 20F4      		brsh .L20
  64:main.c        **** 			{
  65:main.c        **** 				min_value=ret-g_aAdValue[i];
 231               	.LM29:
 232 00a2 8081      		ld r24,Z
 233 00a4 562F      		mov r21,r22
 234 00a6 581B      		sub r21,r24
  66:main.c        **** 				min_id=i;
 236               	.LM30:
 237 00a8 B42F      		mov r27,r20
 239               	.LM31:
 240               	.L20:
 241 00aa 4F5F      		subi r20,lo8(-(1))
 242 00ac 3296      		adiw r30,2
 243 00ae 4830      		cpi r20,lo8(8)
 244 00b0 F8F2      		brlo .L26
  67:main.c        **** 			}
  68:main.c        **** 		}
  69:main.c        **** 	}
  70:main.c        **** 	
  71:main.c        **** 	//去掉第一个和最大最小值后的平均值
  72:main.c        **** 	ret=0;
 246               	.LM32:
 247 00b2 60E0      		ldi r22,lo8(0)
 248 00b4 70E0      		ldi r23,hi8(0)
  73:main.c        **** 	for(i=1;i<8;i++)
 250               	.LM33:
 251 00b6 41E0      		ldi r20,lo8(1)
 252 00b8 E0E0      		ldi r30,lo8(g_aAdValue+2)
 253 00ba F0E0      		ldi r31,hi8(g_aAdValue+2)
 254               	.L32:
  74:main.c        **** 	{
  75:main.c        **** 		if((i!=min_id)&&(i!=max_id))
 256               	.LM34:
 257 00bc 4B17      		cp r20,r27
 258 00be 31F0      		breq .L29
 259 00c0 4C17      		cp r20,r28
 260 00c2 21F0      		breq .L29
  76:main.c        **** 			ret+=g_aAdValue[i];     
 262               	.LM35:
 263 00c4 8081      		ld r24,Z
 264 00c6 9181      		ldd r25,Z+1
 265 00c8 680F      		add r22,r24
 266 00ca 791F      		adc r23,r25
 268               	.LM36:
 269               	.L29:
 270 00cc 4F5F      		subi r20,lo8(-(1))
 271 00ce 3296      		adiw r30,2
 272 00d0 4830      		cpi r20,lo8(8)
 273 00d2 A0F3      		brlo .L32
  77:main.c        **** 	}
  78:main.c        **** 	if(min_id!=max_id)
 275               	.LM37:
 276 00d4 BC17      		cp r27,r28
 277 00d6 21F0      		breq .L33
  79:main.c        **** 		ret/=5;
 279               	.LM38:
 280 00d8 CB01      		movw r24,r22
 281 00da 65E0      		ldi r22,lo8(5)
 282 00dc 70E0      		ldi r23,hi8(5)
 283 00de 03C0      		rjmp .L45
 284               	.L33:
  80:main.c        **** 	else  
  81:main.c        **** 		ret/=6;
 286               	.LM39:
 287 00e0 CB01      		movw r24,r22
 288 00e2 66E0      		ldi r22,lo8(6)
 289 00e4 70E0      		ldi r23,hi8(6)
 290               	.L45:
 291 00e6 00D0      		rcall __udivmodhi4
  82:main.c        **** 
  83:main.c        **** 	ADCSRA=0;//关闭ADC
 293               	.LM40:
 294 00e8 16B8      		out 38-0x20,__zero_reg__
  84:main.c        **** 	
  85:main.c        **** 	return ret;
  86:main.c        **** }
 296               	.LM41:
 297               	.LBE2:
 298 00ea CB01      		movw r24,r22
 299               	/* epilogue: frame size=0 */
 300 00ec CF91      		pop r28
 301 00ee 0895      		ret
 302               	/* epilogue end (size=2) */
 303               	/* function AdcConvert size 124 (121) */
 319               		.data
 320               	.LC0:
 321 0000 2563 00   		.string	"%c"
 322               	.LC1:
 323 0003 2564 0A00 		.string	"%d\n"
 324               		.text
 326               	.global	main
 328               	main:
  87:main.c        **** 
  88:main.c        **** int main(void)
  89:main.c        **** {
 330               	.LM42:
 331               	/* prologue: frame size=1 */
 332 00f0 C0E0      		ldi r28,lo8(__stack - 1)
 333 00f2 D0E0      		ldi r29,hi8(__stack - 1)
 334 00f4 DEBF      		out __SP_H__,r29
 335 00f6 CDBF      		out __SP_L__,r28
 336               	/* prologue end (size=4) */
  90:main.c        **** 	uchar i;
  91:main.c        **** 	IoInit();
 338               	.LM43:
 339               	.LBB5:
 340 00f8 00D0      		rcall IoInit
 341               	.L52:
  92:main.c        **** 	
  93:main.c        **** 	while(1)
  94:main.c        **** 	{
  95:main.c        **** 		scanf("%c",&i);
 343               	.LM44:
 344 00fa CE01      		movw r24,r28
 345 00fc 0196      		adiw r24,1
 346 00fe 9F93      		push r25
 347 0100 8F93      		push r24
 348 0102 80E0      		ldi r24,lo8(.LC0)
 349 0104 90E0      		ldi r25,hi8(.LC0)
 350 0106 9F93      		push r25
 351 0108 8F93      		push r24
 352 010a 00D0      		rcall scanf
  96:main.c        **** 		if(i=='c')
 354               	.LM45:
 355 010c 8981      		ldd r24,Y+1
 356 010e 0F90      		pop __tmp_reg__
 357 0110 0F90      		pop __tmp_reg__
 358 0112 0F90      		pop __tmp_reg__
 359 0114 0F90      		pop __tmp_reg__
 360 0116 8336      		cpi r24,lo8(99)
 361 0118 81F7      		brne .L52
  97:main.c        **** 			printf("%d\n",AdcConvert());
 363               	.LM46:
 364 011a 72DF      		rcall AdcConvert
 365 011c 9F93      		push r25
 366 011e 8F93      		push r24
 367 0120 80E0      		ldi r24,lo8(.LC1)
 368 0122 90E0      		ldi r25,hi8(.LC1)
 369 0124 9F93      		push r25
 370 0126 8F93      		push r24
 371 0128 00D0      		rcall printf
 372 012a 0F90      		pop __tmp_reg__
 373 012c 0F90      		pop __tmp_reg__
 374 012e 0F90      		pop __tmp_reg__
 375 0130 0F90      		pop __tmp_reg__
 376 0132 E3CF      		rjmp .L52
  98:main.c        **** 	}
  99:main.c        **** }
 378               	.LM47:
 379               	.LBE5:
 380               	/* epilogue: frame size=1 */
 381               	/* epilogue: noreturn */
 382               	/* epilogue end (size=0) */
 383               	/* function main size 34 (30) */
 388               		.lcomm g_aAdValue,16
 390               		.text
 392               	Letext:
 393               	/* File "main.c": code  158 = 0x009e ( 151), prologues   5, epilogues   2 */
DEFINED SYMBOLS
                            *ABS*:00000000 main.c
                            *ABS*:0000003f __SREG__
                            *ABS*:0000003e __SP_H__
                            *ABS*:0000003d __SP_L__
                            *ABS*:00000000 __tmp_reg__
                            *ABS*:00000001 __zero_reg__
G:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccxaaaa.s:67     .text:00000000 AdcConvert
                             .bss:00000000 g_aAdValue
G:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccxaaaa.s:328    .text:000000f0 main
G:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccxaaaa.s:392    .text:00000134 Letext
                            *ABS*:00000000 *ABS*

UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
__udivmodhi4
__stack
IoInit
scanf
printf

⌨️ 快捷键说明

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