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

📄 main.lst

📁 AVR单片机控制的PDIUSBD12原程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
  92:main.c        **** 	USART_Init();
  93:main.c        **** 	Inter_Init();
  94:main.c        **** 	bEPPflags.value=0;				//清除事件标志寄存器bEPPflags
  95:main.c        **** 	reconnect_USB();
  96:main.c        **** 	sei();
  97:main.c        **** 	while(1)
  98:main.c        **** 	{
  99:main.c        **** 		if (bEPPflags.bits.bus_reset)    						//总线复位处理
 100:main.c        **** 		{
 101:main.c        **** 		 	bEPPflags.bits.bus_reset = 0;						//清标志
 102:main.c        **** 		}   
 103:main.c        **** 		if (bEPPflags.bits.suspend)								//总线挂起处理
 104:main.c        **** 	    {
 105:main.c        **** 		    bEPPflags.bits.suspend= 0;							//清标志
 106:main.c        **** 		} 
 107:main.c        **** 		if (bEPPflags.bits.setup_packet)						//协议处理
 108:main.c        **** 		{
 109:main.c        **** 			bEPPflags.bits.setup_packet = 0;					//清标志
 110:main.c        **** 			control_handler();
 111:main.c        **** 		}
 112:main.c        **** 	}
 113:main.c        **** }
 114:main.c        **** 
 115:main.c        **** //断开USB总线
 116:main.c        **** void disconnect_USB(void)
 117:main.c        **** {
 328               	.LM27:
 329               	/* prologue: frame size=0 */
 330               	/* prologue end (size=0) */
 118:main.c        **** 	//初始化D12工作状态,断开Soft Connect上拉电阻
 119:main.c        **** 	D12_SetMode(D12_NOLAZYCLOCK, D12_SETTOONE | D12_CLOCK_12M);
 332               	.LM28:
 333 00aa 65E4      		ldi r22,lo8(69)
 334 00ac 82E0      		ldi r24,lo8(2)
 335 00ae 0E94 0000 		call D12_SetMode
 336               	/* epilogue: frame size=0 */
 337 00b2 0895      		ret
 338               	/* epilogue end (size=1) */
 339               	/* function disconnect_USB size 5 (4) */
 341               	.Lscope7:
 343               	.global	connect_USB
 345               	connect_USB:
 120:main.c        **** }
 121:main.c        **** //连接USB总线
 122:main.c        **** void connect_USB(void)
 123:main.c        **** {
 347               	.LM29:
 348               	/* prologue: frame size=0 */
 349               	/* prologue end (size=0) */
 124:main.c        **** 	DISABLE;
 351               	.LM30:
 352               	/* #APP */
 353 00b4 F894      		cli
 125:main.c        **** 	bEPPflags.value=0;				//清除事件标志
 355               	.LM31:
 356               	/* #NOAPP */
 357 00b6 1092 0000 		sts (bEPPflags)+1,__zero_reg__
 358 00ba 1092 0000 		sts bEPPflags,__zero_reg__
 126:main.c        **** 	ENABLE;
 360               	.LM32:
 361               	/* #APP */
 362 00be 7894      		sei
 127:main.c        **** 	//初始化D12工作状态,接通Soft Connect上拉电阻
 128:main.c        **** 	D12_SetDMA(0); 
 364               	.LM33:
 365               	/* #NOAPP */
 366 00c0 80E0      		ldi r24,lo8(0)
 367 00c2 0E94 0000 		call D12_SetDMA
 129:main.c        **** 	D12_SetMode(D12_NOLAZYCLOCK | D12_SOFTCONNECT,D12_SETTOONE | D12_CLOCK_12M );
 369               	.LM34:
 370 00c6 65E4      		ldi r22,lo8(69)
 371 00c8 82E1      		ldi r24,lo8(18)
 372 00ca 0E94 0000 		call D12_SetMode
 373               	/* epilogue: frame size=0 */
 374 00ce 0895      		ret
 375               	/* epilogue end (size=1) */
 376               	/* function connect_USB size 16 (15) */
 378               	.Lscope8:
 380               	.global	reconnect_USB
 382               	reconnect_USB:
 130:main.c        **** 
 131:main.c        **** }
 132:main.c        **** //重新连接到USB
 133:main.c        **** void reconnect_USB(void)
 134:main.c        **** {
 384               	.LM35:
 385               	/* prologue: frame size=0 */
 386               	/* prologue end (size=0) */
 135:main.c        **** 	unsigned long clk_cnt;
 136:main.c        **** 	disconnect_USB();
 388               	.LM36:
 389 00d0 0E94 0000 		call disconnect_USB
 390 00d4 8FE4      		ldi r24,lo8(49999)
 391 00d6 93EC      		ldi r25,hi8(49999)
 392 00d8 A0E0      		ldi r26,hlo8(49999)
 393 00da B0E0      		ldi r27,hhi8(49999)
 394               	.L25:
 137:main.c        **** 	for(clk_cnt=0;clk_cnt<50000;clk_cnt++);
 396               	.LM37:
 397 00dc C297      		sbiw r24,50
 398 00de A109      		sbc r26,__zero_reg__
 399 00e0 B109      		sbc r27,__zero_reg__
 400 00e2 B7FF      		sbrs r27,7
 401 00e4 FBCF      		rjmp .L25
 138:main.c        **** 	connect_USB();
 403               	.LM38:
 404 00e6 0E94 0000 		call connect_USB
 405               	/* epilogue: frame size=0 */
 406 00ea 0895      		ret
 407               	/* epilogue end (size=1) */
 408               	/* function reconnect_USB size 14 (13) */
 413               	.Lscope9:
 415               	.global	control_handler
 417               	control_handler:
 139:main.c        **** }
 140:main.c        **** //USB处理子程序
 141:main.c        **** void control_handler(void)
 142:main.c        **** {
 419               	.LM39:
 420               	/* prologue: frame size=0 */
 421               	/* prologue end (size=0) */
 143:main.c        **** 	unsigned char type,req;
 144:main.c        **** 	type=ControlData.DeviceRequest.bmRequestType & USB_REQUSET_TYPE_MASK;
 423               	.LM40:
 424 00ec 8091 0000 		lds r24,ControlData
 425 00f0 8076      		andi r24,lo8(96)
 145:main.c        **** 	req=ControlData.DeviceRequest.bRequest & USB_REQUSET_MASK;
 427               	.LM41:
 428 00f2 E091 0000 		lds r30,ControlData+1
 429 00f6 EF70      		andi r30,lo8(15)
 146:main.c        **** //	put_c(req);
 147:main.c        **** 	if(type == USB_STANDERD_REQUEST)
 431               	.LM42:
 432 00f8 8823      		tst r24
 433 00fa 31F4      		brne .L129
 148:main.c        **** 		(*StandardDeviceRequest[req])();
 435               	.LM43:
 436 00fc FF27      		clr r31
 437 00fe EE0F      		add r30,r30
 438 0100 FF1F      		adc r31,r31
 439 0102 E050      		subi r30,lo8(-(StandardDeviceRequest))
 440 0104 F040      		sbci r31,hi8(-(StandardDeviceRequest))
 441 0106 07C0      		rjmp .L133
 442               	.L129:
 149:main.c        **** 	else
 150:main.c        **** 		if(type==USB_VENDOR_REQUEST)
 444               	.LM44:
 445 0108 8034      		cpi r24,lo8(64)
 446 010a 51F4      		brne .L131
 151:main.c        **** 			(*VendorDeviceRequest[req])();
 448               	.LM45:
 449 010c FF27      		clr r31
 450 010e EE0F      		add r30,r30
 451 0110 FF1F      		adc r31,r31
 452 0112 E050      		subi r30,lo8(-(VendorDeviceRequest))
 453 0114 F040      		sbci r31,hi8(-(VendorDeviceRequest))
 454               	.L133:
 455 0116 0190      		ld __tmp_reg__,Z+
 456 0118 F081      		ld r31,Z
 457 011a E02D      		mov r30,__tmp_reg__
 458 011c 0995      		icall
 459 011e 0895      		ret
 460               	.L131:
 152:main.c        **** 		else
 153:main.c        **** 			stall_ep0();
 462               	.LM46:
 463 0120 0E94 0000 		call stall_ep0
 464 0124 0895      		ret
 465               	/* epilogue: frame size=0 */
 466               	/* epilogue: noreturn */
 467               	/* epilogue end (size=0) */
 468               	/* function control_handler size 29 (29) */
 474               	.Lscope10:
 476               	.global	main
 478               	main:
 480               	.LM47:
 481               	/* prologue: frame size=0 */
 482 0126 C0E0      		ldi r28,lo8(__stack - 0)
 483 0128 D0E0      		ldi r29,hi8(__stack - 0)
 484 012a DEBF      		out __SP_H__,r29
 485 012c CDBF      		out __SP_L__,r28
 486               	/* prologue end (size=4) */
 488               	.LM48:
 489 012e 0E94 0000 		call IO_Init
 491               	.LM49:
 492 0132 0E94 0000 		call USART_Init
 494               	.LM50:
 495 0136 0E94 0000 		call Inter_Init
 497               	.LM51:
 498 013a 1092 0000 		sts (bEPPflags)+1,__zero_reg__
 499 013e 1092 0000 		sts bEPPflags,__zero_reg__
 501               	.LM52:
 502 0142 0E94 0000 		call reconnect_USB
 504               	.LM53:
 505               	/* #APP */
 506 0146 7894      		sei
 507               	/* #NOAPP */
 508               	.L143:
 510               	.LM54:
 511 0148 8091 0000 		lds r24,bEPPflags
 512 014c 81FF      		sbrs r24,1
 513 014e 03C0      		rjmp .L137
 515               	.LM55:
 516 0150 8D7F      		andi r24,lo8(-3)
 517 0152 8093 0000 		sts bEPPflags,r24
 518               	.L137:
 520               	.LM56:
 521 0156 8091 0000 		lds r24,bEPPflags
 522 015a 82FF      		sbrs r24,2
 523 015c 03C0      		rjmp .L138
 525               	.LM57:
 526 015e 8B7F      		andi r24,lo8(-5)
 527 0160 8093 0000 		sts bEPPflags,r24
 528               	.L138:
 530               	.LM58:
 531 0164 8091 0000 		lds r24,bEPPflags
 532 0168 83FF      		sbrs r24,3
 533 016a EECF      		rjmp .L143
 535               	.LM59:
 536 016c 877F      		andi r24,lo8(-9)
 537 016e 8093 0000 		sts bEPPflags,r24
 539               	.LM60:
 540 0172 0E94 0000 		call control_handler
 541 0176 E8CF      		rjmp .L143
 542               	/* epilogue: frame size=0 */
 543               	/* epilogue: noreturn */
 544               	/* epilogue end (size=0) */
 545               	/* function main size 42 (38) */
 547               	.Lscope11:
 548               		.comm EpBuf,2,1
 549               		.comm GenEpBuf,64,1
 550               		.comm bEPPflags,2,1
 551               		.comm ControlData,22,1
 556               		.text
 558               	Letext:
 559               	/* File "main.c": code  191 = 0x00bf ( 141), prologues  23, epilogues  27 */
DEFINED SYMBOLS
                            *ABS*:00000000 main.c
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccmabaaa.s:3      *ABS*:0000003f __SREG__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccmabaaa.s:4      *ABS*:0000003e __SP_H__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccmabaaa.s:5      *ABS*:0000003d __SP_L__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccmabaaa.s:6      *ABS*:00000000 __tmp_reg__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccmabaaa.s:7      *ABS*:00000001 __zero_reg__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccmabaaa.s:109    .text:00000000 LED
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccmabaaa.s:129    .text:00000006 IO_Init
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccmabaaa.s:161    .text:00000018 USART_Init
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccmabaaa.s:195    .text:0000002c put_c
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccmabaaa.s:218    .text:00000034 put_s
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccmabaaa.s:255    .text:0000005a Inter_Init
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccmabaaa.s:276    .text:00000062 __vector_1
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccmabaaa.s:326    .text:000000aa disconnect_USB
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccmabaaa.s:345    .text:000000b4 connect_USB
                            *COM*:00000002 bEPPflags
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccmabaaa.s:382    .text:000000d0 reconnect_USB
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccmabaaa.s:417    .text:000000ec control_handler
                            *COM*:00000016 ControlData
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccmabaaa.s:478    .text:00000126 main
                            *COM*:00000002 EpBuf
                            *COM*:00000040 GenEpBuf
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccmabaaa.s:558    .text:00000178 Letext

UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
fn_usb_isr
D12_SetMode
D12_SetDMA
StandardDeviceRequest
VendorDeviceRequest
stall_ep0
__stack

⌨️ 快捷键说明

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