📄 initial.lis
字号:
.module initial.c
.area text(rom, con, rel)
0000 .dbfile D:\myavrproject\icc\twi\initial.c
0000 .dbfunc e watchdog_init _watchdog_init fV
.even
0000 _watchdog_init::
0000 .dbline -1
0000 .dbline 12
0000 ; //ICC-AVR application builder : 2007-1-9 14:28:21
0000 ; // Target : M8
0000 ; // Crystal: 8.0000Mhz
0000 ;
0000 ; #include <iom8v.h>
0000 ; #include <macros.h>
0000 ;
0000 ;
0000 ; //Watchdog initialize
0000 ; // prescale: 2048K
0000 ; void watchdog_init(void)
0000 ; {
0000 .dbline 13
0000 ; WDR(); //this prevents a timout on enabling
0000 A895 wdr
0002 .dbline 14
0002 ; WDTCR = 0x0f; //WATCHDOG ENABLED - dont forget to issue WDRs
0002 8FE0 ldi R24,15
0004 81BD out 0x21,R24
0006 .dbline -2
0006 L1:
0006 .dbline 0 ; func end
0006 0895 ret
0008 .dbend
0008 .dbfunc e twi_init _twi_init fV
.even
0008 _twi_init::
0008 .dbline -1
0008 .dbline 28
0008 ; /*
0008 ; //关闭看门狗
0008 ; //置位WDCE 和 WDE
0008 ; WDTCR |= (1<<WDCE) | (1<<WDE);
0008 ; //关闭WDT
0008 ; WDTCR = 0x00;
0008 ; */
0008 ; }
0008 ;
0008 ; //TWI initialize
0008 ; // bit rate:72
0008 ; //50KHZ
0008 ; void twi_init(void)
0008 ; {
0008 .dbline 29
0008 ; TWCR= 0X00; //disable twi
0008 2224 clr R2
000A 26BE out 0x36,R2
000C .dbline 30
000C ; TWBR= 0x48; //set bit rate
000C 88E4 ldi R24,72
000E 80B9 out 0x0,R24
0010 .dbline 31
0010 ; TWSR= 0x00; //set prescale
0010 21B8 out 0x1,R2
0012 .dbline 32
0012 ; TWAR= 0x01; //set slave address
0012 81E0 ldi R24,1
0014 82B9 out 0x2,R24
0016 .dbline 33
0016 ; TWCR= 0x45; //enable twi
0016 85E4 ldi R24,69
0018 86BF out 0x36,R24
001A .dbline -2
001A L2:
001A .dbline 0 ; func end
001A 0895 ret
001C .dbend
.area vector(rom, abs)
.org 34
0022 0EC0 rjmp _twi_isr
.area text(rom, con, rel)
001C .dbfile D:\myavrproject\icc\twi\initial.c
001C .dbfunc e twi_isr _twi_isr fV
.even
001C _twi_isr::
001C .dbline -1
001C .dbline 38
001C ; }
001C ;
001C ; #pragma interrupt_handler twi_isr:18
001C ; void twi_isr(void)
001C ; {
001C .dbline -2
001C L3:
001C .dbline 0 ; func end
001C 1895 reti
001E .dbend
001E .dbfunc e uart0_init _uart0_init fV
.even
001E _uart0_init::
001E .dbline -1
001E .dbline 48
001E ; //twi event
001E ; }
001E ;
001E ; //UART0 initialize
001E ; // desired baud rate: 9600
001E ; // actual: baud rate:9615 (0.2%)
001E ; // char size: 8 bit
001E ; // parity: Disabled
001E ; void uart0_init(void)
001E ; {
001E .dbline 49
001E ; UCSRB = 0x00; //disable while setting baud rate
001E 2224 clr R2
0020 2AB8 out 0xa,R2
0022 .dbline 50
0022 ; UCSRA = 0x02;
0022 82E0 ldi R24,2
0024 8BB9 out 0xb,R24
0026 .dbline 51
0026 ; UCSRC = BIT(URSEL) | 0x06;
0026 86E8 ldi R24,134
0028 80BD out 0x20,R24
002A .dbline 52
002A ; UBRRL = 0x67; //set baud rate lo
002A 87E6 ldi R24,103
002C 89B9 out 0x9,R24
002E .dbline 53
002E ; UBRRH = 0x00; //set baud rate hi
002E 20BC out 0x20,R2
0030 .dbline 54
0030 ; UCSRB = 0x18;
0030 88E1 ldi R24,24
0032 8AB9 out 0xa,R24
0034 .dbline -2
0034 L4:
0034 .dbline 0 ; func end
0034 0895 ret
0036 .dbend
0036 .dbfunc e init_devices _init_devices fV
.even
0036 _init_devices::
0036 .dbline -1
0036 .dbline 59
0036 ; }
0036 ;
0036 ; //call this routine to initialize all peripherals
0036 ; void init_devices(void)
0036 ; {
0036 .dbline 61
0036 ; //stop errant interrupts until set up
0036 ; CLI(); //disable all interrupts
0036 F894 cli
0038 .dbline 62
0038 ; port_init();
0038 00D0 rcall _port_init
003A .dbline 63
003A ; watchdog_init();
003A E2DF rcall _watchdog_init
003C .dbline 64
003C ; twi_init();
003C E5DF rcall _twi_init
003E .dbline 65
003E ; uart0_init();
003E EFDF rcall _uart0_init
0040 .dbline 68
0040 ;
0040 ;
0040 ; MCUCR = 0x00;
0040 2224 clr R2
0042 25BE out 0x35,R2
0044 .dbline 69
0044 ; GICR = 0x00;
0044 2BBE out 0x3b,R2
0046 .dbline 70
0046 ; TIMSK = 0x00; //timer interrupt sources
0046 29BE out 0x39,R2
0048 .dbline 71
0048 ; SEI(); //re-enable interrupts
0048 7894 sei
004A .dbline -2
004A L5:
004A .dbline 0 ; func end
004A 0895 ret
004C .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -