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

📄 adc.lst

📁 adhoc信息节点程序源代码(点对多点)——for atmega128
💻 LST
📖 第 1 页 / 共 3 页
字号:
 171               	/* function ADCHPLInit size 12 (11) */
 174               	.global	ADCControlInit
 176               	ADCControlInit:
 178               	.LM18:
 179               	/* prologue: frame size=0 */
 180               	/* prologue end (size=0) */
 181               	.LBB5:
 183               	.LM19:
 184 0052 0E94 0000 		call AtomicStart
 186               	.LM20:
 187 0056 1092 0000 		sts (ADCM_ReqPort)+1,__zero_reg__
 188 005a 1092 0000 		sts ADCM_ReqPort,__zero_reg__
 190               	.LM21:
 191 005e 1092 0000 		sts (ADCM_ContReqMask)+1,__zero_reg__
 192 0062 1092 0000 		sts ADCM_ContReqMask,__zero_reg__
 193 0066 1092 0000 		sts (ADCM_ReqVector)+1,__zero_reg__
 194 006a 1092 0000 		sts ADCM_ReqVector,__zero_reg__
 196               	.LM22:
 197 006e 0E94 0000 		call AtomicEnd
 198               	.LBE5:
 200               	.LM23:
 201 0072 0E94 0000 		call ADCHPLInit
 203               	.LM24:
 204 0076 9927      		clr r25
 205               	/* epilogue: frame size=0 */
 206 0078 0895      		ret
 207               	/* epilogue end (size=1) */
 208               	/* function ADCControlInit size 20 (19) */
 213               	.global	ADCBindPort
 215               	ADCBindPort:
 217               	.LM25:
 218               	/* prologue: frame size=0 */
 219 007a 1F93      		push r17
 220 007c CF93      		push r28
 221               	/* prologue end (size=2) */
 222 007e C82F      		mov r28,r24
 223 0080 162F      		mov r17,r22
 225               	.LM26:
 226 0082 8C30      		cpi r24,lo8(12)
 227 0084 90F4      		brsh .L12
 229               	.LM27:
 230 0086 8A30      		cpi r24,lo8(10)
 231 0088 81F0      		breq .L12
 232 008a 8B30      		cpi r24,lo8(11)
 233 008c 71F0      		breq .L12
 235               	.LM28:
 236 008e 0E94 0000 		call ADCHPLInitPortmap
 237               	.LBB6:
 239               	.LM29:
 240 0092 0E94 0000 		call AtomicStart
 242               	.LM30:
 243 0096 EC2F      		mov r30,r28
 244 0098 FF27      		clr r31
 245 009a E050      		subi r30,lo8(-(adcPortmap))
 246 009c F040      		sbci r31,hi8(-(adcPortmap))
 247 009e 1083      		st Z,r17
 249               	.LM31:
 250 00a0 0E94 0000 		call AtomicEnd
 251               	.LBE6:
 253               	.LM32:
 254 00a4 81E0      		ldi r24,lo8(1)
 255 00a6 90E0      		ldi r25,hi8(1)
 256 00a8 02C0      		rjmp .L11
 257               	.L12:
 259               	.LM33:
 260 00aa 80E0      		ldi r24,lo8(0)
 261 00ac 90E0      		ldi r25,hi8(0)
 262               	.L11:
 263               	/* epilogue: frame size=0 */
 264 00ae CF91      		pop r28
 265 00b0 1F91      		pop r17
 266 00b2 0895      		ret
 267               	/* epilogue end (size=3) */
 268               	/* function ADCBindPort size 29 (24) */
 273               	.global	ADCDataReady
 275               	ADCDataReady:
 277               	.LM34:
 278               	/* prologue: frame size=0 */
 279               	/* prologue end (size=0) */
 281               	.LM35:
 282 00b4 282F      		mov r18,r24
 283 00b6 3327      		clr r19
 284 00b8 2130      		cpi r18,1
 285 00ba 3105      		cpc r19,__zero_reg__
 286 00bc 71F0      		breq .L17
 288               	.LM36:
 289 00be 2230      		cpi r18,2
 290 00c0 3105      		cpc r19,__zero_reg__
 291 00c2 1CF4      		brge .L20
 292 00c4 232B      		or r18,r19
 293 00c6 29F0      		breq .L16
 294 00c8 10C0      		rjmp .L19
 295               	.L20:
 296 00ca 2230      		cpi r18,2
 297 00cc 3105      		cpc r19,__zero_reg__
 298 00ce 49F0      		breq .L18
 299 00d0 0CC0      		rjmp .L19
 300               	.L16:
 302               	.LM37:
 303 00d2 CB01      		movw r24,r22
 304 00d4 0E94 0000 		call RadiocontrolRSSIADCDataReady
 306               	.LM38:
 307 00d8 09C0      		rjmp .L15
 308               	.L17:
 310               	.LM39:
 311 00da CB01      		movw r24,r22
 312 00dc 0E94 0000 		call SensorInternalPhotoADCDataReady
 314               	.LM40:
 315 00e0 05C0      		rjmp .L15
 316               	.L18:
 318               	.LM41:
 319 00e2 CB01      		movw r24,r22
 320 00e4 0E94 0000 		call SensorInternalTempADCDataReady
 322               	.LM42:
 323 00e8 01C0      		rjmp .L15
 324               	.L19:
 326               	.LM43:
 327 00ea 80E0      		ldi r24,lo8(0)
 328               	.L15:
 330               	.LM44:
 331 00ec 9927      		clr r25
 332               	/* epilogue: frame size=0 */
 333 00ee 0895      		ret
 334               	/* epilogue end (size=1) */
 335               	/* function ADCDataReady size 30 (29) */
 340               	.global	ADCHPLSamplePort
 342               	ADCHPLSamplePort:
 193:adc.c         **** }
 194:adc.c         **** 
 195:adc.c         **** void __attribute((signal))   __vector_21(void)
 196:adc.c         **** {
 197:adc.c         **** 	uint16_t data = * (volatile unsigned int *)(unsigned int )& * (volatile unsigned char *)(0x04 + 0x
 198:adc.c         **** 	
 199:adc.c         **** 	data &= 0x3ff;
 200:adc.c         **** 	* (volatile unsigned char *)(0x06 + 0x20) |= 1 << 4;
 201:adc.c         **** 	* (volatile unsigned char *)(0x06 + 0x20) &= ~(1 << 7);
 202:adc.c         **** 	EnableInterrupt();
 203:adc.c         **** 	ADCHPLDataReady(data);
 204:adc.c         **** }
 205:adc.c         **** 
 206:adc.c         **** result_t ADCHPLSamplePort(uint8_t port)
 207:adc.c         **** {
 344               	.LM45:
 345               	/* prologue: frame size=0 */
 346 00f0 1F93      		push r17
 347               	/* prologue end (size=1) */
 348 00f2 182F      		mov r17,r24
 349               	.LBB7:
 208:adc.c         **** 	{ uint8_t atomicState = AtomicStart();
 351               	.LM46:
 352 00f4 0E94 0000 		call AtomicStart
 209:adc.c         ****     {
 210:adc.c         **** 		* (volatile unsigned char *)(0x07 + 0x20) = adcPortmap[port] & 0x1F;
 354               	.LM47:
 355 00f8 E0E0      		ldi r30,lo8(adcPortmap)
 356 00fa F0E0      		ldi r31,hi8(adcPortmap)
 357 00fc E10F      		add r30,r17
 358 00fe F11D      		adc r31,__zero_reg__
 359 0100 9081      		ld r25,Z
 360 0102 9F71      		andi r25,lo8(31)
 361 0104 97B9      		out 39-0x20,r25
 211:adc.c         ****     }
 212:adc.c         ****     AtomicEnd(atomicState); }
 363               	.LM48:
 364 0106 0E94 0000 		call AtomicEnd
 365               	.LBE7:
 213:adc.c         **** 	* (volatile unsigned char *)(0x06 + 0x20) |= 1 << 7;
 367               	.LM49:
 368 010a 379A      		sbi 38-0x20,7
 214:adc.c         **** 	* (volatile unsigned char *)(0x06 + 0x20) |= 1 << 6;
 370               	.LM50:
 371 010c 369A      		sbi 38-0x20,6
 215:adc.c         **** 	
 216:adc.c         **** 	return SUCCESS;
 217:adc.c         **** }...
 373               	.LM51:
 374 010e 81E0      		ldi r24,lo8(1)
 375 0110 90E0      		ldi r25,hi8(1)
 376               	/* epilogue: frame size=0 */
 377 0112 1F91      		pop r17
 378 0114 0895      		ret
 379               	/* epilogue end (size=2) */
 380               	/* function ADCHPLSamplePort size 19 (16) */
 384               	.global	ADCHPLDataReady
 386               	ADCHPLDataReady:
 388               	.LM52:
 389               	/* prologue: frame size=0 */
 390 0116 EF92      		push r14
 391 0118 FF92      		push r15
 392 011a 0F93      		push r16
 393 011c 1F93      		push r17
 394 011e CF93      		push r28
 395 0120 DF93      		push r29
 396               	/* prologue end (size=6) */
 397 0122 8C01      		movw r16,r24
 398               	.LBB8:
 400               	.LM53:
 401 0124 0E94 0000 		call AtomicStart
 402 0128 E82E      		mov r14,r24
 404               	.LM54:
 405 012a F090 0000 		lds r15,ADCM_ReqPort
 407               	.LM55:
 408 012e CF2D      		mov r28,r15
 409 0130 DD27      		clr r29
 410 0132 41E0      		ldi r20,lo8(1)
 411 0134 50E0      		ldi r21,hi8(1)
 412 0136 9A01      		movw r18,r20
 413 0138 0C2E      		mov r0,r28
 414 013a 02C0      		rjmp 2f
 415 013c 220F      	1:	lsl r18
 416 013e 331F      		rol r19
 417 0140 0A94      	2:	dec r0
 418 0142 E2F7      		brpl 1b
 419 0144 8091 0000 		lds r24,ADCM_ContReqMask
 420 0148 9091 0000 		lds r25,(ADCM_ContReqMask)+1
 421 014c 8223      		and r24,r18
 422 014e 9323      		and r25,r19
 423 0150 892B      		or r24,r25
 424 0152 61F4      		brne .L23
 426               	.LM56:
 427 0154 2095      		com r18
 428 0156 3095      		com r19
 429 0158 8091 0000 		lds r24,ADCM_ReqVector
 430 015c 9091 0000 		lds r25,(ADCM_ReqVector)+1
 431 0160 8223      		and r24,r18
 432 0162 9323      		and r25,r19
 433 0164 9093 0000 		sts (ADCM_ReqVector)+1,r25
 434 0168 8093 0000 		sts ADCM_ReqVector,r24
 435               	.L23:
 437               	.LM57:
 438 016c 6091 0000 		lds r22,ADCM_ReqVector
 439 0170 7091 0000 		lds r23,(ADCM_ReqVector)+1
 440 0174 6115      		cp r22,__zero_reg__
 441 0176 7105      		cpc r23,__zero_reg__
 442 0178 11F1      		breq .L24
 443 017a FA01      		movw r30,r20
 444 017c 4091 0000 		lds r20,ADCM_ReqPort
 445 0180 5091 0000 		lds r21,(ADCM_ReqPort)+1
 446               	.L25:
 448               	.LM58:
 449 0184 4F5F      		subi r20,lo8(-(1))
 450 0186 5F4F      		sbci r21,hi8(-(1))
 452               	.LM59:
 453 0188 4C30      		cpi r20,12
 454 018a 5105      		cpc r21,__zero_reg__
 455 018c 11F0      		breq .L28
 456 018e 9A01      		movw r18,r20
 457 0190 02C0      		rjmp .L29
 458               	.L28:
 459 0192 20E0      		ldi r18,lo8(0)
 460 0194 30E0      		ldi r19,hi8(0)
 461               	.L29:
 462 0196 A901      		movw r20,r18
 464               	.LM60:
 465 0198 CF01      		movw r24,r30
 466 019a 022E      		mov r0,r18
 467 019c 02C0      		rjmp 2f
 468 019e 880F      	1:	lsl r24
 469 01a0 991F      		rol r25
 470 01a2 0A94      	2:	dec r0
 471 01a4 E2F7      		brpl 1b
 472 01a6 8623      		and r24,r22
 473 01a8 9723      		and r25,r23
 474 01aa 892B      		or r24,r25
 475 01ac 59F3      		breq .L25
 476 01ae 3093 0000 		sts (ADCM_ReqPort)+1,r19
 477 01b2 2093 0000 		sts ADCM_ReqPort,r18
 479               	.LM61:
 480 01b6 8091 0000 		lds r24,ADCM_ReqPort
 481 01ba 0E94 0000 		call ADCHPLSamplePort
 482               	.L24:
 484               	.LM62:
 485 01be 8E2D      		mov r24,r14

⌨️ 快捷键说明

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