📄 functions.lis
字号:
.module functions.c
.area text(rom, con, rel)
0000 .dbfile C:\RGauge\functions.c
0000 .dbfunc e uart_putc _uart_putc fV
0000 ; c -> R16
.even
0000 _uart_putc::
0000 .dbline -1
0000 .dbline 4
0000 ;
0000 ; #include "config.h"
0000 ;
0000 ; void uart_putc(unsigned char c) {
0000 L2:
0000 .dbline 6
0000 .dbline 6
0000 L3:
0000 .dbline 6
0000 ; // wait until UDR ready
0000 ; while(!(UCSRA & (1 << UDRE))) {};
0000 5D9B sbis 0xb,5
0002 FECF rjmp L2
0004 .dbline 6
0004 .dbline 7
0004 ; UDR = c; // send character
0004 0CB9 out 0xc,R16
0006 .dbline -2
0006 L1:
0006 .dbline 0 ; func end
0006 0895 ret
0008 .dbsym r c 16 c
0008 .dbend
0008 .dbfunc e uart_puts _uart_puts fV
0008 ; s -> R20,R21
.even
0008 _uart_puts::
0008 0E940000 xcall push_gset1
000C A801 movw R20,R16
000E .dbline -1
000E .dbline 10
000E ; }
000E ;
000E ; void uart_puts(char *s) {
000E 05C0 xjmp L7
0010 L6:
0010 .dbline 12
0010 .dbline 13
0010 FA01 movw R30,R20
0012 0081 ldd R16,z+0
0014 F5DF xcall _uart_putc
0016 .dbline 14
0016 4F5F subi R20,255 ; offset = 1
0018 5F4F sbci R21,255
001A .dbline 15
001A L7:
001A .dbline 12
001A ; // loop until *s != NULL
001A ; while (*s) {
001A FA01 movw R30,R20
001C 2080 ldd R2,z+0
001E 2220 tst R2
0020 B9F7 brne L6
0022 .dbline -2
0022 L5:
0022 0E940000 xcall pop_gset1
0026 .dbline 0 ; func end
0026 0895 ret
0028 .dbsym r s 20 pc
0028 .dbend
0028 .dbfunc e SPI_MasterTransmit _SPI_MasterTransmit fV
0028 ; cData -> R16
.even
0028 _SPI_MasterTransmit::
0028 .dbline -1
0028 .dbline 19
0028 ; uart_putc(*s);
0028 ; s++;
0028 ; }
0028 ; }
0028 ;
0028 ; void SPI_MasterTransmit (char cData)
0028 ; {
0028 .dbline 20
0028 ; SPDR = cData;
0028 0FB9 out 0xf,R16
002A L10:
002A .dbline 21
002A L11:
002A .dbline 21
002A ; while( !(SPDR & (1 <<SPIF)) );
002A 7F9B sbis 0xf,7
002C FECF rjmp L10
002E .dbline -2
002E L9:
002E .dbline 0 ; func end
002E 0895 ret
0030 .dbsym r cData 16 c
0030 .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -