📄 main.lis
字号:
.module main.c
.area text(rom, con, rel)
0000 .dbfile E:\公司用\atmega8l\final\nrf905_send1\main.c
0000 .dbfunc e port_init1 _port_init1 fV
.even
0000 _port_init1::
0000 .dbline -1
0000 .dbline 16
0000 ; //ICC-AVR application builder : 2006-4-4 11:28:26
0000 ; // Target : M16 PTR8000模块简单测试
0000 ; // Crystal: 4MHz(11.059Mhz)
0000 ;
0000 ; //最关键的是SPI的初始化,MSB首位和极性方式00,极性方式错误,数据则不正确
0000 ;
0000 ; #include "confg.h"
0000 ;
0000 ;
0000 ; #define MASTER //编译控制是主机还是从机
0000 ;
0000 ;
0000 ; void SystemIni(void);
0000 ;
0000 ; void port_init1(void)
0000 ; {
0000 .dbline 17
0000 ; PORTB = 0xFe;
0000 8EEF ldi R24,254
0002 88BB out 0x18,R24
0004 .dbline 18
0004 ; DDRB = 0x00;
0004 2224 clr R2
0006 27BA out 0x17,R2
0008 .dbline 19
0008 ; PORTC = 0x00; //m103 output only
0008 25BA out 0x15,R2
000A .dbline 20
000A ; DDRC = 0x00;
000A 24BA out 0x14,R2
000C .dbline 21
000C ; PORTD = 0xFF;
000C 8FEF ldi R24,255
000E 82BB out 0x12,R24
0010 .dbline 22
0010 ; DDRD = 0x00;
0010 21BA out 0x11,R2
0012 .dbline -2
0012 .dbline 23
0012 ; }
0012 L1:
0012 .dbline 0 ; func end
0012 0895 ret
0014 .dbend
0014 .dbfunc e port_init2 _port_init2 fV
.even
0014 _port_init2::
0014 .dbline -1
0014 .dbline 26
0014 ;
0014 ; void port_init2(void)
0014 ; {
0014 .dbline 28
0014 ;
0014 ; PORTB = 0xD7;
0014 87ED ldi R24,215
0016 88BB out 0x18,R24
0018 .dbline 29
0018 ; DDRB = 0x2C;
0018 8CE2 ldi R24,44
001A 87BB out 0x17,R24
001C .dbline 30
001C ; PORTC = 0x00; //m103 output only
001C 2224 clr R2
001E 25BA out 0x15,R2
0020 .dbline 31
0020 ; DDRC = 0x00;
0020 24BA out 0x14,R2
0022 .dbline 32
0022 ; PORTD = 0x1f;
0022 8FE1 ldi R24,31
0024 82BB out 0x12,R24
0026 .dbline 33
0026 ; DDRD = 0xe0;
0026 80EE ldi R24,224
0028 81BB out 0x11,R24
002A .dbline -2
002A .dbline 34
002A ; }
002A L2:
002A .dbline 0 ; func end
002A 0895 ret
002C .dbend
002C .dbfunc e spi_init _spi_init fV
002C ; temp -> R16
.even
002C _spi_init::
002C .dbline -1
002C .dbline 38
002C ;
002C ; //SPI initialize
002C ; void spi_init(void)
002C ; {uchar temp;
002C .dbline 41
002C ;
002C ; //SPCR = 0xD1; //SPI中断允许,SPI允许,主机模式,MSB,极性方式00,1/16系统时钟速率
002C ; SPCR = 0x51; //不使用SPI中断,其它同上
002C 81E5 ldi R24,81
002E 8DB9 out 0xd,R24
0030 .dbline 42
0030 ; SPSR = 0x00; //setup SPI
0030 2224 clr R2
0032 2EB8 out 0xe,R2
0034 .dbline 44
0034 ;
0034 ; temp = SPSR; //!!!
0034 0EB1 in R16,0xe
0036 .dbline 45
0036 ; temp = SPDR; //清空SPI,和中断标志,使SPI空闲
0036 0FB1 in R16,0xf
0038 .dbline -2
0038 .dbline 46
0038 ; }
0038 L3:
0038 .dbline 0 ; func end
0038 0895 ret
003A .dbsym r temp 16 c
003A .dbend
003A .dbfunc e init_devices _init_devices fV
.even
003A _init_devices::
003A .dbline -1
003A .dbline 53
003A ;
003A ;
003A ;
003A ;
003A ; //call this routine to initialize all peripherals
003A ; void init_devices(void)
003A ; {
003A .dbline 55
003A ; //stop errant interrupts until set up
003A ; CLI(); //disable all interrupts
003A F894 cli
003C .dbline 56
003C ; port_init1();
003C E1DF rcall _port_init1
003E .dbline 58
003E ; // spi_init();
003E ; uart_init();
003E 00D0 rcall _uart_init
0040 .dbline 63
0040 ;
0040 ; // MCUCR = 0x0c;
0040 ; //GICR|= 0x80;//enable INT1 interrupt
0040 ;
0040 ; GIFR = 0xc0;// 清除INT0、INT1 中断标志位
0040 80EC ldi R24,192
0042 8ABF out 0x3a,R24
0044 .dbline 64
0044 ; SEI(); //re-enable interrupts
0044 7894 sei
0046 .dbline -2
0046 .dbline 66
0046 ; //all peripherals are now initialized
0046 ; }
0046 L4:
0046 .dbline 0 ; func end
0046 0895 ret
0048 .dbend
0048 .dbfunc e init_devices2 _init_devices2 fV
.even
0048 _init_devices2::
0048 .dbline -1
0048 .dbline 69
0048 ;
0048 ; void init_devices2(void)
0048 ; {
0048 .dbline 71
0048 ; //stop errant interrupts until set up
0048 ; CLI(); //disable all interrupts
0048 F894 cli
004A .dbline 72
004A ; port_init2();
004A E4DF rcall _port_init2
004C .dbline 73
004C ; spi_init();
004C EFDF rcall _spi_init
004E .dbline 79
004E ; //uart_init();
004E ;
004E ; //MCUCR = 0x00;
004E ; //GICR = 0x00;
004E ;
004E ; SEI(); //re-enable interrupts
004E 7894 sei
0050 .dbline -2
0050 .dbline 81
0050 ; //all peripherals are now initialized
0050 ; }
0050 L5:
0050 .dbline 0 ; func end
0050 0895 ret
0052 .dbend
0052 .dbfunc e port_init3 _port_init3 fV
.even
0052 _port_init3::
0052 .dbline -1
0052 .dbline 84
0052 ;
0052 ; void port_init3(void)
0052 ; {
0052 .dbline 85
0052 ; PORTB = 0x00;
0052 2224 clr R2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -