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

📄 main.s

📁 Atmeag162-k9f5608-pdiusbd12-u usb接口 u盘源码 包括fat文件源码
💻 S
📖 第 1 页 / 共 2 页
字号:
	.module MAIN.C
	.area data(ram, con, rel)
_StandardDeviceRequest::
	.blkw 1
	.area idata
	.word PL_get_status
	.area data(ram, con, rel)
	.blkw 1
	.area idata
	.word PL_clear_feature
	.area data(ram, con, rel)
	.blkw 1
	.area idata
	.word PL_reserved
	.area data(ram, con, rel)
	.blkw 1
	.area idata
	.word PL_set_feature
	.area data(ram, con, rel)
	.blkw 1
	.area idata
	.word PL_reserved
	.area data(ram, con, rel)
	.blkw 1
	.area idata
	.word PL_set_address
	.area data(ram, con, rel)
	.blkw 1
	.area idata
	.word PL_get_descriptor
	.area data(ram, con, rel)
	.blkw 1
	.area idata
	.word PL_reserved
	.area data(ram, con, rel)
	.blkw 1
	.area idata
	.word PL_get_configuration
	.area data(ram, con, rel)
	.blkw 1
	.area idata
	.word PL_set_configuration
	.area data(ram, con, rel)
	.blkw 1
	.area idata
	.word PL_get_interface
	.area data(ram, con, rel)
	.blkw 1
	.area idata
	.word PL_set_interface
	.area data(ram, con, rel)
	.blkw 1
	.area idata
	.word PL_reserved
	.area data(ram, con, rel)
	.blkw 1
	.area idata
	.word PL_reserved
	.area data(ram, con, rel)
	.blkw 1
	.area idata
	.word PL_reserved
	.area data(ram, con, rel)
	.blkw 1
	.area idata
	.word PL_reserved
	.area data(ram, con, rel)
	.dbfile D:\AvrUSB\MAIN.C
	.dbsym e StandardDeviceRequest _StandardDeviceRequest A[32:16]pfV
_VendorDeviceRequest::
	.blkw 1
	.area idata
	.word PL_reserved
	.area data(ram, con, rel)
	.dbfile D:\AvrUSB\MAIN.C
	.blkw 1
	.area idata
	.word PL_reserved
	.area data(ram, con, rel)
	.dbfile D:\AvrUSB\MAIN.C
	.blkw 1
	.area idata
	.word PL_reserved
	.area data(ram, con, rel)
	.dbfile D:\AvrUSB\MAIN.C
	.blkw 1
	.area idata
	.word PL_reserved
	.area data(ram, con, rel)
	.dbfile D:\AvrUSB\MAIN.C
	.blkw 1
	.area idata
	.word PL_reserved
	.area data(ram, con, rel)
	.dbfile D:\AvrUSB\MAIN.C
	.blkw 1
	.area idata
	.word PL_reserved
	.area data(ram, con, rel)
	.dbfile D:\AvrUSB\MAIN.C
	.blkw 1
	.area idata
	.word PL_reserved
	.area data(ram, con, rel)
	.dbfile D:\AvrUSB\MAIN.C
	.blkw 1
	.area idata
	.word PL_reserved
	.area data(ram, con, rel)
	.dbfile D:\AvrUSB\MAIN.C
	.blkw 1
	.area idata
	.word PL_reserved
	.area data(ram, con, rel)
	.dbfile D:\AvrUSB\MAIN.C
	.blkw 1
	.area idata
	.word PL_reserved
	.area data(ram, con, rel)
	.dbfile D:\AvrUSB\MAIN.C
	.blkw 1
	.area idata
	.word PL_reserved
	.area data(ram, con, rel)
	.dbfile D:\AvrUSB\MAIN.C
	.blkw 1
	.area idata
	.word PL_reserved
	.area data(ram, con, rel)
	.dbfile D:\AvrUSB\MAIN.C
	.blkw 1
	.area idata
	.word PL_reserved
	.area data(ram, con, rel)
	.dbfile D:\AvrUSB\MAIN.C
	.blkw 1
	.area idata
	.word PL_reserved
	.area data(ram, con, rel)
	.dbfile D:\AvrUSB\MAIN.C
	.blkw 1
	.area idata
	.word PL_reserved
	.area data(ram, con, rel)
	.dbfile D:\AvrUSB\MAIN.C
	.blkw 1
	.area idata
	.word PL_reserved
	.area data(ram, con, rel)
	.dbfile D:\AvrUSB\MAIN.C
	.dbsym e VendorDeviceRequest _VendorDeviceRequest A[32:16]pfV
	.area text(rom, con, rel)
	.dbfile D:\AvrUSB\MAIN.C
	.dbfunc e init_port _init_port fV
	.even
_init_port::
	.dbline -1
	.dbline 57
; #include <iom162v.h>
; #include <macros.h>
; #include <stdio.h>
; #include <string.h>
; 
; #include "MAIN.H"
; #include "D12CI.H"
; #include "CHAP9.H"
; #include "BulkOnly.H"
; ///////////////////////////////////
; #include "Fat.h"
; ///////////////////////////////////
; void (*StandardDeviceRequest[])(void)=
; {
;   get_status,
;   clear_feature,
;   reserved,
;   set_feature,
;   reserved,
;   set_address,
;   get_descriptor,
;   reserved,
;   get_configuration,
;   set_configuration,
;   get_interface,
;   set_interface,
;   reserved,
;   reserved,
;   reserved,
;   reserved
; };
; void(* VendorDeviceRequest[])(void)=
; {
;   reserved,
;   reserved,
;   reserved,
;   reserved,
;   reserved,
;   reserved,
;   reserved,
;   reserved,
;   reserved,
;   reserved,
;   reserved,
;   reserved,
;   reserved,
;   reserved,
;   reserved,
;   reserved
; };
; 
; extern EPPFLAGS       bEPPflags;
; extern IO_REQUEST     ioRequest;
; CONTROL_XFER ControlData;
; 
; void init_port()
; {
	.dbline 58
;   PORTC = 0xff;
	ldi R24,255
	out 0x15,R24
	.dbline 59
;   DDRC  = 0xff;//保持状态
	out 0x14,R24
	.dbline 60
;   DDRD  = 0xea; //1110 1010关闭引脚上拉电阻,使正确读取引脚输入
	ldi R24,234
	out 0x11,R24
	.dbline 61
;   PORTD = 0xd8; //1101 1000
	ldi R24,216
	out 0x12,R24
	.dbline 62
;   DDRA  = 0xff; //关闭上拉电阻,使正确读写外部SRAM
	ldi R24,255
	out 0x1a,R24
	.dbline 63
;   DDRC  = 0x00;
	clr R2
	out 0x14,R2
	.dbline 64
;   MCUCR = 0xc0;
	ldi R24,192
	out 0x35,R24
	.dbline 65
;   GICR|=BIT(INT0);   
	in R24,0x3b
	ori R24,64
	out 0x3b,R24
	.dbline -2
	.dbline 66
; }
L1:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e init_serial _init_serial fV
	.even
_init_serial::
	.dbline -1
	.dbline 68
; void init_serial(void)
; {
	.dbline 69
;   UBRR0H=(unsigned char)(51>>8);
	clr R2
	out 0x20,R2
	.dbline 70
;   UBRR0L=(unsigned char)51;
	ldi R24,51
	out 0x9,R24
	.dbline 71
;   UCSR0B=BIT(TXEN0);
	ldi R24,8
	out 0xa,R24
	.dbline 72
;   UCSR0C=(1<<URSEL0)|(1<<USBS0)|(3<<UCSZ00);
	ldi R24,142
	out 0x20,R24
	.dbline -2
	.dbline 73
; }
L2:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e disconnect_USB _disconnect_USB fV
	.even
_disconnect_USB::
	.dbline -1
	.dbline 75
; void disconnect_USB(void)
; {
	.dbline 76
;   D12_SetMode(D12_NOLAZYCLOCK|D12_CLOCKRUNNING,D12_SETTOONE|D12_CLOCK_8M);
	ldi R18,69
	ldi R16,6
	.dbline -2
	.dbline 77
; }
L3:
	.dbline 0 ; func end
	xjmp _D12_SetMode
	.dbend
	.dbfunc e connect_USB _connect_USB fV
	.even
_connect_USB::
	.dbline -1
	.dbline 79
; void connect_USB(void)
; {
	.dbline 80
;   DISABLE;
	cli
	.dbline 81
;   bEPPflags.value=0;
	clr R2
	clr R3
	sts _bEPPflags+1,R3
	sts _bEPPflags,R2
	.dbline 82
;   ENABLE;
	sei
	.dbline 83
;   D12_SetEndpointStatus(4,0);
	clr R18
	ldi R16,4
	xcall _D12_SetEndpointStatus
	.dbline 84
;   D12_SetEndpointStatus(5,0);
	clr R18
	ldi R16,5
	xcall _D12_SetEndpointStatus
	.dbline 85
;   D12_SetDMA(0);
	clr R16
	xcall _D12_SetDMA
	.dbline 86
;   D12_SetMode(D12_NOLAZYCLOCK|D12_CLOCKRUNNING|D12_SOFTCONNECT,D12_SETTOONE|D12_CLOCK_8M);
	ldi R18,69
	ldi R16,22
	.dbline -2
	.dbline 87
; }
L4:
	.dbline 0 ; func end
	xjmp _D12_SetMode
	.dbend
	.dbfunc e reconnect_USB _reconnect_USB fV
;              i -> R20,R21
	.even
_reconnect_USB::
	xcall push_gset1
	.dbline -1
	.dbline 89
; void reconnect_USB(void)
; {
	.dbline 91
;   unsigned int i;
;   disconnect_USB();
	xcall _disconnect_USB
	.dbline 92
;   ENABLE;
	sei
	.dbline 93
	clr R20
	clr R21
	xjmp L9
L6:
	.dbline 93
L7:
	.dbline 93
	subi R20,255  ; offset = 1
	sbci R21,255
L9:
	.dbline 93
;   for(i=0;i<50000;i++);
	cpi R20,80
	ldi R30,195
	cpc R21,R30
	brlo L6
	.dbline 94
;   DISABLE;
	cli
	.dbline 95
;   connect_USB(); 
	xcall _connect_USB
	.dbline -2
	.dbline 96
; }
L5:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r i 20 i
	.dbend
	.dbfunc e stall_ep0 _stall_ep0 fV
	.even
_stall_ep0::
	.dbline -1
	.dbline 98
; void stall_ep0()
; {
	.dbline 99
;   D12_SetEndpointStatus(0,1);
	ldi R18,1
	clr R16
	xcall _D12_SetEndpointStatus
	.dbline 100
;   D12_SetEndpointStatus(1,1);
	ldi R18,1
	ldi R16,1
	.dbline -2
	.dbline 101
; }
L10:
	.dbline 0 ; func end
	xjmp _D12_SetEndpointStatus
	.dbend
	.dbfunc e init_unconfig _init_unconfig fV
	.even
_init_unconfig::
	.dbline -1
	.dbline 103
; void init_unconfig(void)
; {
	.dbline 104
;   D12_SetEndpointEnable(0);
	clr R16
	.dbline -2
	.dbline 105
; }

⌨️ 快捷键说明

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