avr: more work on uart_hw.
This commit is contained in:
@@ -201,7 +201,7 @@ comOnUart0RunWriteModes:
|
||||
|
||||
|
||||
; ---------------------------------------------------------------------------
|
||||
; @routine comOnUart0RunIdle
|
||||
; @routine comOnUart0RunWriteIdle
|
||||
;
|
||||
; @clobbers
|
||||
|
||||
@@ -209,10 +209,18 @@ comOnUart0RunWriteIdle:
|
||||
ldd r16, Y+NET_IFACE_OFFS_WRITETIMER
|
||||
cpi r16, TTYONUART1_MSG_INTERVAL ; wait a bit between messages
|
||||
brcs comOnUart0RunWriteIdle_end
|
||||
|
||||
sbis COM_ATTN_INPUT, COM_ATTN_PIN ; ATTN low?
|
||||
rjmp comOnUart0RunWriteIdle_end ; yes, jmp
|
||||
|
||||
rcall NET_Interface_GetNextOutgoingMsgNum ; (R17, R18, X)
|
||||
brcc comOnUart0RunWriteIdle_end
|
||||
rcall NET_Buffer_Locate ; (R17)
|
||||
brcc comOnUart0RunWriteIdle_end
|
||||
|
||||
sbi COM_ATTN_DDR, COM_ATTN_PIN ; set ATTN as output
|
||||
cbi COM_ATTN_OUTPUT, COM_ATTN_PIN ; set ATTN low
|
||||
|
||||
rcall ComOnUart0_SendBuffer ; (R16, R17)
|
||||
comOnUart0RunWriteIdle_end:
|
||||
ret
|
||||
@@ -256,6 +264,10 @@ comOnUart0RunWriteBufferEmpty:
|
||||
rcall NET_Buffer_ReleaseByNum ; (R16, X)
|
||||
comOnUart0RunWriteBufferEmpty_setIdle:
|
||||
rcall UART_HW_Uart0_StopTx ; disable transceiver and interrupts (R16)
|
||||
|
||||
cbi COM_ATTN_DDR, COM_ATTN_PIN ; set ATTN as input
|
||||
cbi COM_ATTN_OUTPUT, COM_ATTN_PIN ; disable pullup on ATTN
|
||||
|
||||
ldi r16, UART_HW_WRITEMODE_IDLE
|
||||
std Y+UART_HW_IFACE_OFFS_WRITEMODE, r16
|
||||
ldi r16, NET_IFACE_OFFS_PACKETSOUT_LOW ; increment packets counter
|
||||
|
||||
Reference in New Issue
Block a user