📄 sci.lis
字号:
.module sci.c
.area text(rom, con, rel)
0000 .dbfile F:\mydoc\avrproject\icc\big162\gpseep\sci.c
0000 .dbfunc s CommDrvDefaultProc _CommDrvDefaultProc fV
0000 ; value -> R0
.even
0000 _CommDrvDefaultProc:
0000 .dbline -1
0000 .dbline 5
0000 ; #include "sci.h"
0000 ;
0000 ;
0000 ;
0000 ; static void CommDrvDefaultProc (register BYTE value) { (void) value; };
0000 .dbline 5
0000 .dbline -2
0000 L1:
0000 .dbline 0 ; func end
0000 0895 ret
0002 .dbsym l value 0 c
0002 .dbend
.area data(ram, con, rel)
0000 .dbfile F:\mydoc\avrproject\icc\big162\gpseep\sci.c
0000 _EvtProcedure:
0000 .blkw 1
.area idata
0000 0000 .word PL_CommDrvDefaultProc
.area data(ram, con, rel)
0002 .dbfile F:\mydoc\avrproject\icc\big162\gpseep\sci.c
0002 .dbsym s EvtProcedure _EvtProcedure pfV
.area vector(rom, abs)
.org 76
004C 0C940100 jmp _UART0_RX_interrupt
.area data(ram, con, rel)
0002 .dbfile F:\mydoc\avrproject\icc\big162\gpseep\sci.c
.area text(rom, con, rel)
0002 .dbfile F:\mydoc\avrproject\icc\big162\gpseep\sci.c
0002 .dbfunc e UART0_RX_interrupt _UART0_RX_interrupt fV
.even
0002 _UART0_RX_interrupt::
0002 0E940000 xcall push_lset
0006 .dbline -1
0006 .dbline 14
0006 ; static void (* EvtProcedure) (register BYTE value) = CommDrvDefaultProc;
0006 ; // Byte pointers of the ring buffer (FIFO)
0006 ;
0006 ;
0006 ;
0006 ; #pragma interrupt_handler UART0_RX_interrupt:20
0006 ;
0006 ; void UART0_RX_interrupt( void )
0006 ; {
0006 .dbline 16
0006 ; //BYTE a=UDR0;
0006 ; EvtProcedure(UDR0);
0006 0CB1 in R16,0xc
0008 E0910000 lds R30,_EvtProcedure
000C F0910100 lds R31,_EvtProcedure+1
0010 0E940000 xcall xicall
0014 .dbline 17
0014 ; PORTD ^= BIT(STA);
0014 80E2 ldi R24,32
0016 22B2 in R2,0x12
0018 2826 eor R2,R24
001A 22BA out 0x12,R2
001C .dbline -2
001C L2:
001C 0E940000 xcall pop_lset
0020 .dbline 0 ; func end
0020 1895 reti
0022 .dbend
.area vector(rom, abs)
.org 80
0050 0C941100 jmp _UART1_RX_interrupt
.area text(rom, con, rel)
0022 .dbfile F:\mydoc\avrproject\icc\big162\gpseep\sci.c
0022 .dbfunc e UART1_RX_interrupt _UART1_RX_interrupt fV
.even
0022 _UART1_RX_interrupt::
0022 0E940000 xcall push_lset
0026 .dbline -1
0026 .dbline 25
0026 ; //WriteComm1(a);///////////////////////////
0026 ; }
0026 ;
0026 ;
0026 ; #pragma interrupt_handler UART1_RX_interrupt:21
0026 ;
0026 ; void UART1_RX_interrupt( void )
0026 ; {
0026 .dbline 26
0026 ; WriteComm0(UDR1);
0026 03B1 in R16,0x3
0028 08D0 xcall _WriteComm0
002A .dbline 27
002A ; PORTD ^= BIT(STC);
002A 80E4 ldi R24,64
002C 22B2 in R2,0x12
002E 2826 eor R2,R24
0030 22BA out 0x12,R2
0032 .dbline -2
0032 L3:
0032 0E940000 xcall pop_lset
0036 .dbline 0 ; func end
0036 1895 reti
0038 .dbend
0038 .dbfunc e OpenComm0 _OpenComm0 fV
.even
0038 _OpenComm0::
0038 .dbline -1
0038 .dbline 32
0038 ; }
0038 ;
0038 ;
0038 ; void OpenComm0 (void)
0038 ; {
0038 .dbline -2
0038 L4:
0038 .dbline 0 ; func end
0038 0895 ret
003A .dbend
003A .dbfunc e WriteComm0 _WriteComm0 fV
003A ; c -> R16
.even
003A _WriteComm0::
003A .dbline -1
003A .dbline 39
003A ;
003A ; }
003A ;
003A ;
003A ;
003A ; void WriteComm0 (BYTE c)
003A ; {
003A L6:
003A .dbline 40
003A L7:
003A .dbline 40
003A ; while( !(UCSR0A & (1<<UDRE0)) );
003A 5D9B sbis 0xb,5
003C FECF rjmp L6
003E .dbline 41
003E ; UDR0=c;
003E 0CB9 out 0xc,R16
0040 .dbline 42
0040 ; PORTD ^= BIT(STA);
0040 80E2 ldi R24,32
0042 22B2 in R2,0x12
0044 2826 eor R2,R24
0046 22BA out 0x12,R2
0048 .dbline -2
0048 L5:
0048 .dbline 0 ; func end
0048 0895 ret
004A .dbsym r c 16 c
004A .dbend
004A .dbfunc e WriteCommStr0 _WriteCommStr0 fV
004A ; str -> R20,R21
.even
004A _WriteCommStr0::
004A 0E940000 xcall push_gset1
004E A801 movw R20,R16
0050 .dbline -1
0050 .dbline 46
0050 ; //WriteComm1 (c);//////////////////////test
0050 ; }
0050 ; void WriteCommStr0 (char* str)
0050 ; {
0050 05C0 xjmp L11
0052 L10:
0052 .dbline 48
0052 .dbline 49
0052 FA01 movw R30,R20
0054 0081 ldd R16,z+0
0056 F1DF xcall _WriteComm0
0058 .dbline 50
0058 4F5F subi R20,255 ; offset = 1
005A 5F4F sbci R21,255
005C .dbline 51
005C L11:
005C .dbline 47
005C ; while(*str)
005C FA01 movw R30,R20
005E 2080 ldd R2,z+0
0060 2220 tst R2
0062 B9F7 brne L10
0064 .dbline -2
0064 L9:
0064 0E940000 xcall pop_gset1
0068 .dbline 0 ; func end
0068 0895 ret
006A .dbsym r str 20 pc
006A .dbend
006A .dbfunc e ReadComm0 _ReadComm0 fc
.even
006A _ReadComm0::
006A .dbline -1
006A .dbline 54
006A ; {
006A ; WriteComm0(*str);
006A ; str++;
006A ; }
006A ; }
006A ; BYTE ReadComm0 ()
006A ; {
006A L14:
006A .dbline 55
006A L15:
006A .dbline 55
006A ; while( !(UCSR0A & (1<<RXC0)) );
006A 5F9B sbis 0xb,7
006C FECF rjmp L14
006E .dbline 56
006E ; return UDR0;
006E 0CB1 in R16,0xc
0070 .dbline -2
0070 L13:
0070 .dbline 0 ; func end
0070 0895 ret
0072 .dbend
0072 .dbfunc e ReadCommT0 _ReadCommT0 fc
0072 ; time -> R16
.even
0072 _ReadCommT0::
0072 .dbline -1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -