avr: echoing messages via tty now basically works.

This commit is contained in:
Martin Preuss
2025-02-13 23:52:55 +01:00
parent a7990db831
commit 6e25647c0a
6 changed files with 163 additions and 18 deletions

View File

@@ -9,6 +9,7 @@
.equ TTYONUART1_SKIPTIME = 2
.equ TTYONUART1_MSG_INTERVAL = 2
.equ TTYONUART1_IFACENUM = 2
@@ -218,7 +219,7 @@ TtyOnUart1_Run:
ttyOnUart1RunWriteModes:
ldd r16, Y+UART_HW_IFACE_OFFS_WRITEMODE ; handle write functions
cpi r16, UART_HW_WRITEMODE_IDLE
breq ttyOnUart1RunIdle
breq ttyOnUart1RunWriteIdle
cpi r16, UART_HW_WRITEMODE_WRITING
breq ttyOnUart1RunWriting
cpi r16, UART_HW_WRITEMODE_WAITBUFFEREMPTY
@@ -235,13 +236,16 @@ ttyOnUart1RunWriteModes:
;
; @clobbers
ttyOnUart1RunIdle:
ttyOnUart1RunWriteIdle:
ldd r16, Y+NET_IFACE_OFFS_WRITETIMER
cpi r16, TTYONUART1_MSG_INTERVAL ; wait a bit between messages
brcs ttyOnUart1RunWriteIdle_end
rcall NET_Interface_GetNextOutgoingMsgNum ; (R17, R18, X)
brcc ttyOnUart1RunIdle_end
brcc ttyOnUart1RunWriteIdle_end
rcall NET_Buffer_Locate ; (R17)
brcc ttyOnUart1RunIdle_end
brcc ttyOnUart1RunWriteIdle_end
rcall TtyOnUart1_SendBuffer ; (R16, R17)
ttyOnUart1RunIdle_end:
ttyOnUart1RunWriteIdle_end:
ret
@@ -355,7 +359,7 @@ ttyOnUart1RunReading:
ttyOnUart1RunSkipping:
ldd r16, Y+NET_IFACE_OFFS_READTIMER
cpi r16, 2
cpi r16, TTYONUART1_SKIPTIME
brcs ttyOnUart1RunSkipping_end
ldi r16, UART_HW_READMODE_IDLE
std Y+UART_HW_IFACE_OFFS_READMODE, r16