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

📄 init.lis

📁 ICCAVR Rainguage counter program
💻 LIS
📖 第 1 页 / 共 2 页
字号:
                        .module init.c
                        .area text(rom, con, rel)
 0000                   .dbfile C:\RGauge\init.c
 0000                   .dbfunc e port_init _port_init fV
                        .even
 0000           _port_init::
 0000                   .dbline -1
 0000                   .dbline 12
 0000           ; //ICC-AVR application builder : 14/3/2007 23:29:10
 0000           ; // Target : M16
 0000           ; // Crystal: 7.3728Mhz
 0000           ; 
 0000           ; #include "config.h"
 0000           ; #include "predef.h"
 0000           ; 
 0000           ; #define BAUD_RATE 9600
 0000           ; #define BAUD_PRESCALE (((F_CPU / (BAUD_RATE * 16UL))) - 1)
 0000           ; 
 0000           ; void port_init(void)
 0000           ; {
 0000                   .dbline 13
 0000           ;  PORTA = 0x00;
 0000 2224              clr R2
 0002 2BBA              out 0x1b,R2
 0004                   .dbline 14
 0004           ;  DDRA  = 0x00;
 0004 2ABA              out 0x1a,R2
 0006                   .dbline 15
 0006           ;  PORTB = 0xFD;
 0006 8DEF              ldi R24,253
 0008 88BB              out 0x18,R24
 000A                   .dbline 16
 000A           ; DDRB  = 0xB0;
 000A 80EB              ldi R24,176
 000C 87BB              out 0x17,R24
 000E                   .dbline 17
 000E           ;  PORTC = 0x00; //m103 output only
 000E 25BA              out 0x15,R2
 0010                   .dbline 18
 0010           ;  DDRC  = 0x00;
 0010 24BA              out 0x14,R2
 0012                   .dbline 19
 0012           ;  PORTD = 0x00;
 0012 22BA              out 0x12,R2
 0014                   .dbline 20
 0014           ;  DDRD  = 0x00;
 0014 21BA              out 0x11,R2
 0016                   .dbline -2
 0016           L1:
 0016                   .dbline 0 ; func end
 0016 0895              ret
 0018                   .dbend
 0018                   .dbfunc e uart0_init _uart0_init fV
                        .even
 0018           _uart0_init::
 0018                   .dbline -1
 0018                   .dbline 29
 0018           ; }
 0018           ; 
 0018           ; //UART0 initialize
 0018           ; // desired baud rate: 
 0018           ; // actual: baud rate: (0.0%)
 0018           ; // char size: 8 bit
 0018           ; // parity: Disabled
 0018           ; void uart0_init(void)
 0018           ; {
 0018                   .dbline 30
 0018           ;  UCSRB = 0x00; //disable while setting baud rate
 0018 2224              clr R2
 001A 2AB8              out 0xa,R2
 001C                   .dbline 31
 001C           ;  UCSRA = 0x00;
 001C 2BB8              out 0xb,R2
 001E                   .dbline 32
 001E           ;  UCSRC = BIT(URSEL) | 0x06;  //Use 8-bit character sizes - URSEL bit set to select the UCRSC register 
 001E 86E8              ldi R24,134
 0020 80BD              out 0x20,R24
 0022                   .dbline 33
 0022           ;  UBRRL = BAUD_PRESCALE; // Load lower 8-bits of the baud rate value into the low byte of the UBRR register 
 0022 8FE2              ldi R24,47
 0024 89B9              out 0x9,R24
 0026                   .dbline 34
 0026           ; UBRRH = (BAUD_PRESCALE >> 8); // Load upper 8-bits of the baud rate value into the high byte of the UBRR register 
 0026 20BC              out 0x20,R2
 0028                   .dbline 35
 0028           ;  UCSRB = 0xD8;
 0028 88ED              ldi R24,216
 002A 8AB9              out 0xa,R24
 002C                   .dbline -2
 002C           L2:
 002C                   .dbline 0 ; func end
 002C 0895              ret
 002E                   .dbend
                        .area data(ram, con, rel)
 0000                   .dbfile C:\RGauge\init.c
 0000           _sendready::
 0000                   .blkb 2
                        .area idata
 0000 0100              .word 1
                        .area data(ram, con, rel)
 0002                   .dbfile C:\RGauge\init.c
 0002                   .dbsym e sendready _sendready I
                        .area vector(rom, abs)
                        .org 44
 002C 0C941700          jmp _uart0_rx_isr
                        .area data(ram, con, rel)
 0002                   .dbfile C:\RGauge\init.c
                        .area text(rom, con, rel)
 002E                   .dbfile C:\RGauge\init.c
 002E                   .dbfunc e uart0_rx_isr _uart0_rx_isr fV
 002E           ;         status -> R22
 002E           ;           data -> R20
                        .even
 002E           _uart0_rx_isr::
 002E 0E940000          xcall push_lset
 0032 0E940000          xcall push_gset2
 0036                   .dbline -1
 0036                   .dbline 41
 0036           ; }
 0036           ; 
 0036           ; extern int sendready=1;
 0036           ; #pragma interrupt_handler uart0_rx_isr:12
 0036           ; void uart0_rx_isr(void)
 0036           ; {
 0036                   .dbline 44
 0036           ;  //uart has received a character in UDR
 0036           ;  unsigned char status,data;
 0036           ;  status=UCSRA;  //get the usart status
 0036 6BB1              in R22,0xb
 0038                   .dbline 45
 0038           ;  data = UDR;  //put the received character to data variable
 0038 4CB1              in R20,0xc
 003A                   .dbline 46
 003A           ;  if(data == 'R') {
 003A 4235              cpi R20,82
 003C 31F4              brne L4
 003E                   .dbline 46
 003E                   .dbline 47
 003E           ;  sendready = 1;
 003E 81E0              ldi R24,1
 0040 90E0              ldi R25,0
 0042 90930100          sts _sendready+1,R25
 0046 80930000          sts _sendready,R24
 004A                   .dbline 48
 004A           ;  }
 004A           L4:
 004A                   .dbline 50
 004A 862F              mov R24,R22
 004C 8871              andi R24,24
 004E 19F4              brne L6
 0050                   .dbline 51
 0050                   .dbline 52
 0050 042F              mov R16,R20
 0052 0E940000          xcall _uart_putc
 0056                   .dbline 53
 0056           L6:
 0056                   .dbline -2
 0056           L3:
 0056 0E940000          xcall pop_gset2
 005A 0E940000          xcall pop_lset
 005E                   .dbline 0 ; func end
 005E 1895              reti
 0060                   .dbsym r status 22 c
 0060                   .dbsym r data 20 c
 0060                   .dbend
                        .area vector(rom, abs)
                        .org 52
 0034 0C943000          jmp _uart0_tx_isr
                        .area text(rom, con, rel)
 0060                   .dbfile C:\RGauge\init.c
 0060                   .dbfunc e uart0_tx_isr _uart0_tx_isr fV
                        .even
 0060           _uart0_tx_isr::
 0060                   .dbline -1
 0060                   .dbline 59
 0060           ;  
 0060           ;  if((status & (FRAMING_ERROR | DATA_OVERRUN))==0)
 0060           ;   {
 0060           ;   uart_putc(data);
 0060           ;   }
 0060           ;       
 0060           ; }
 0060           ; 
 0060           ; #pragma interrupt_handler uart0_tx_isr:14
 0060           ; void uart0_tx_isr(void)
 0060           ; {
 0060                   .dbline -2
 0060           L8:
 0060                   .dbline 0 ; func end
 0060 1895              reti
 0062                   .dbend
 0062                   .dbfunc e spi_init _spi_init fV
                        .even
 0062           _spi_init::
 0062                   .dbline -1
 0062                   .dbline 67
 0062           ;  //character has been transmitted
 0062           ; }
 0062           ; 
 0062           ; //SPI initialize
 0062           ; //Master mode
 0062           ; // clock rate: 460799hz
 0062           ; void spi_init(void)
 0062           ; {
 0062                   .dbline 68
 0062           ;  SPCR = 0x72; //setup SPI
 0062 82E7              ldi R24,114
 0064 8DB9              out 0xd,R24
 0066                   .dbline 69
 0066           ;  SPSR = 0x00; //setup SPI
 0066 2224              clr R2
 0068 2EB8              out 0xe,R2
 006A                   .dbline -2
 006A           L9:

⌨️ 快捷键说明

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