📄 functions.s
字号:
.module functions.c
.area text(rom, con, rel)
.dbfile C:\RGauge\functions.c
.dbfunc e uart_putc _uart_putc fV
; c -> R16
.even
_uart_putc::
.dbline -1
.dbline 4
;
; #include "config.h"
;
; void uart_putc(unsigned char c) {
L2:
.dbline 6
.dbline 6
L3:
.dbline 6
; // wait until UDR ready
; while(!(UCSRA & (1 << UDRE))) {};
sbis 0xb,5
rjmp L2
.dbline 6
.dbline 7
; UDR = c; // send character
out 0xc,R16
.dbline -2
L1:
.dbline 0 ; func end
ret
.dbsym r c 16 c
.dbend
.dbfunc e uart_puts _uart_puts fV
; s -> R20,R21
.even
_uart_puts::
xcall push_gset1
movw R20,R16
.dbline -1
.dbline 10
; }
;
; void uart_puts(char *s) {
xjmp L7
L6:
.dbline 12
.dbline 13
movw R30,R20
ldd R16,z+0
xcall _uart_putc
.dbline 14
subi R20,255 ; offset = 1
sbci R21,255
.dbline 15
L7:
.dbline 12
; // loop until *s != NULL
; while (*s) {
movw R30,R20
ldd R2,z+0
tst R2
brne L6
.dbline -2
L5:
xcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r s 20 pc
.dbend
.dbfunc e SPI_MasterTransmit _SPI_MasterTransmit fV
; cData -> R16
.even
_SPI_MasterTransmit::
.dbline -1
.dbline 19
; uart_putc(*s);
; s++;
; }
; }
;
; void SPI_MasterTransmit (char cData)
; {
.dbline 20
; SPDR = cData;
out 0xf,R16
L10:
.dbline 21
L11:
.dbline 21
; while( !(SPDR & (1 <<SPIF)) );
sbis 0xf,7
rjmp L10
.dbline -2
L9:
.dbline 0 ; func end
ret
.dbsym r cData 16 c
.dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -