📄 init.lis
字号:
.module init.c
.area text(rom, con, rel)
0000 .dbfile C:\ATMega8515\点阵\init.c
0000 .dbfunc e port_init _port_init fV
.even
0000 _port_init::
0000 .dbline -1
0000 .dbline 9
0000 ; //ICC-AVR application builder : 2006-4-27 14:09:59
0000 ; // Target : M8515
0000 ; // Crystal: 11.059Mhz
0000 ;
0000 ; #include <iom8515v.h>
0000 ; #include <macros.h>
0000 ;
0000 ; void port_init(void)
0000 ; {
0000 .dbline 10
0000 ; PORTA = 0x00;
0000 2224 clr R2
0002 2BBA out 0x1b,R2
0004 .dbline 11
0004 ; DDRA = 0x00;
0004 2ABA out 0x1a,R2
0006 .dbline 12
0006 ; PORTB = 0x00;
0006 28BA out 0x18,R2
0008 .dbline 13
0008 ; DDRB = 0xBF;
0008 8FEB ldi R24,191
000A 87BB out 0x17,R24
000C .dbline 14
000C ; PORTC = 0x00;
000C 25BA out 0x15,R2
000E .dbline 15
000E ; DDRC = 0x00;
000E 24BA out 0x14,R2
0010 .dbline 16
0010 ; PORTD = 0x00;
0010 22BA out 0x12,R2
0012 .dbline 17
0012 ; DDRD = 0x00;
0012 21BA out 0x11,R2
0014 .dbline 18
0014 ; PORTE = 0x00;
0014 27B8 out 0x7,R2
0016 .dbline 19
0016 ; DDRE = 0x00;
0016 26B8 out 0x6,R2
0018 .dbline -2
0018 L1:
0018 .dbline 0 ; func end
0018 0895 ret
001A .dbend
001A .dbfunc e spi_init _spi_init fV
.even
001A _spi_init::
001A .dbline -1
001A .dbline 25
001A ; }
001A ;
001A ; //SPI initialize
001A ; // clock rate: 5529498hz
001A ; void spi_init(void)
001A ; {
001A .dbline 26
001A ; SPCR = 0xFC; //setup SPI
001A 8CEF ldi R24,252
001C 8DB9 out 0xd,R24
001E .dbline -2
001E L2:
001E .dbline 0 ; func end
001E 0895 ret
0020 .dbend
.area vector(rom, abs)
.org 16
0010 10C0 rjmp _spi_stc_isr
.area text(rom, con, rel)
0020 .dbfile C:\ATMega8515\点阵\init.c
0020 .dbfunc e spi_stc_isr _spi_stc_isr fV
.even
0020 _spi_stc_isr::
0020 2A92 st -y,R2
0022 8A93 st -y,R24
0024 2FB6 in R2,0x3f
0026 2A92 st -y,R2
0028 .dbline -1
0028 .dbline 31
0028 ; }
0028 ;
0028 ; #pragma interrupt_handler spi_stc_isr:9
0028 ; void spi_stc_isr(void)
0028 ; {
0028 .dbline 33
0028 ; //byte in SPDR has been sent/received
0028 ; PORTB^=0x10;
0028 80E1 ldi R24,16
002A 28B2 in R2,0x18
002C 2826 eor R2,R24
002E 28BA out 0x18,R2
0030 .dbline 34
0030 ; PORTB^=0x10;
0030 28B2 in R2,0x18
0032 2826 eor R2,R24
0034 28BA out 0x18,R2
0036 .dbline -2
0036 L3:
0036 2990 ld R2,y+
0038 2FBE out 0x3f,R2
003A 8991 ld R24,y+
003C 2990 ld R2,y+
003E .dbline 0 ; func end
003E 1895 reti
0040 .dbend
0040 .dbfunc e init_devices _init_devices fV
.even
0040 _init_devices::
0040 .dbline -1
0040 .dbline 39
0040 ; }
0040 ;
0040 ; //call this routine to initialize all peripherals
0040 ; void init_devices(void)
0040 ; {
0040 .dbline 41
0040 ; //stop errant interrupts until set up
0040 ; CLI(); //disable all interrupts
0040 F894 cli
0042 .dbline 42
0042 ; port_init();
0042 DEDF rcall _port_init
0044 .dbline 43
0044 ; spi_init();
0044 EADF rcall _spi_init
0046 .dbline 45
0046 ;
0046 ; MCUCR = 0x00;
0046 2224 clr R2
0048 25BE out 0x35,R2
004A .dbline 46
004A ; EMCUCR = 0x00;
004A 26BE out 0x36,R2
004C .dbline 47
004C ; GICR = 0x00;
004C 2BBE out 0x3b,R2
004E .dbline 48
004E ; TIMSK = 0x00;
004E 29BE out 0x39,R2
0050 .dbline 49
0050 ; SEI(); //re-enable interrupts
0050 7894 sei
0052 .dbline -2
0052 L4:
0052 .dbline 0 ; func end
0052 0895 ret
0054 .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -