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