avr: new uart_bitbang module works now.
This commit is contained in:
@@ -12,12 +12,11 @@
|
||||
; UART_BitBang_Init
|
||||
; UART_BitBang_Fini
|
||||
; UART_BitBang_Run
|
||||
; UART_BitBang_SendPacket:
|
||||
; UART_BitBang_GetNextReceivedPacket:
|
||||
; UART_BitBang_ReleaseReceivedPacket:
|
||||
; UART_BitBang_SendPacket
|
||||
; UART_BitBang_GetNextReceivedPacket
|
||||
; UART_BitBang_ReleaseReceivedPacket
|
||||
|
||||
|
||||
.include "modules/com2/buffer.asm"
|
||||
|
||||
|
||||
|
||||
@@ -29,7 +28,6 @@
|
||||
|
||||
uartBitbangDataBegin:
|
||||
uartBitbangRecvBuffersUsed: .byte 1
|
||||
uartBitbangMaxBuffersUsed: .byte 1
|
||||
uartBitbangRecvBuffersWritePos: .byte 1
|
||||
uartBitbangRecvBuffersReadPos: .byte 1
|
||||
uartBitbangRecvBuffers: .byte COM2_BUFFER_SIZE*UART_BITBANG_BUFFER_NUM
|
||||
@@ -85,7 +83,7 @@ UART_BitBang_Init:
|
||||
|
||||
|
||||
; ---------------------------------------------------------------------------
|
||||
; @routine UART_BitBang_Init
|
||||
; @routine UART_BitBang_Fini
|
||||
;
|
||||
; @return CFLAG set if okay, clear on error
|
||||
; @clobbers R16, R17, X, Y
|
||||
@@ -113,6 +111,7 @@ UART_BitBang_Fini:
|
||||
; @clobbers any
|
||||
|
||||
UART_BitBang_Run:
|
||||
clc
|
||||
ret
|
||||
; @end
|
||||
|
||||
@@ -127,6 +126,22 @@ UART_BitBang_Run:
|
||||
; @clobbers r22, x (r18, r19, r22)
|
||||
|
||||
UART_BitBang_SendPacket:
|
||||
push r15
|
||||
in r15, SREG
|
||||
cli
|
||||
rcall UART_BitBang_SendPacket_noIrqs
|
||||
brcc UART_BitBang_SendPacket_retErr
|
||||
out SREG, r15
|
||||
pop r15
|
||||
sec
|
||||
ret
|
||||
UART_BitBang_SendPacket_retErr:
|
||||
out SREG, r15
|
||||
pop r15
|
||||
clc
|
||||
ret
|
||||
|
||||
UART_BitBang_SendPacket_noIrqs:
|
||||
rcall uartBitbang_SendPacket
|
||||
brcs UART_BitBang_SendPacket_okay
|
||||
cpi r16, COM2_ERROR_BUSY
|
||||
@@ -189,8 +204,8 @@ UART_BitBang_GetNextReceivedPacket_retNc:
|
||||
; @clobbers r16, r17, r21
|
||||
|
||||
UART_BitBang_ReleaseReceivedPacket:
|
||||
rjmp COM2_BufferDeallocFront ; (r16, r17, r21)
|
||||
|
||||
rjmp uartBitbang_BufferDeallocFront ; (r16, r17, r21)
|
||||
; @end
|
||||
|
||||
|
||||
|
||||
@@ -285,7 +300,11 @@ uartBitbang_ReceivePacket_retnc:
|
||||
; @clobbers r16, r17, r21
|
||||
|
||||
uartBitbang_BufferAlloc:
|
||||
COM2_M_BufferAlloc UART_BITBANG_BUFFER_NUM, uartBitbangMaxBuffersUsed, uartBitbangRecvBuffersUsed, uartBitbangRecvBuffersWritePos
|
||||
COM2_M_BufferAlloc UART_BITBANG_BUFFER_NUM, \
|
||||
com2MaxRecvBuffersUsed, \
|
||||
uartBitbangRecvBuffersUsed, \
|
||||
uartBitbangRecvBuffersWritePos, \
|
||||
uartBitbang_BufferPosToX
|
||||
ret
|
||||
; @end
|
||||
|
||||
@@ -394,10 +413,10 @@ uartBitbangIsrPcint0_end:
|
||||
|
||||
|
||||
; set routine functions
|
||||
.equ COMIO_Init = UART_BitBang_Init
|
||||
.equ COMIO_Fini = UART_BitBang_Fini
|
||||
.equ COMIO_Run = UART_BitBang_Run
|
||||
.equ COMIO_SendPacket = UART_BitBang_SendPacket
|
||||
.equ COMIO_Init = UART_BitBang_Init
|
||||
.equ COMIO_Fini = UART_BitBang_Fini
|
||||
.equ COMIO_Run = UART_BitBang_Run
|
||||
.equ COMIO_SendPacket = UART_BitBang_SendPacket
|
||||
.equ COMIO_GetNextReceivedPacket = UART_BitBang_GetNextReceivedPacket
|
||||
.equ COMIO_ReleaseReceivedPacket = UART_BitBang_ReleaseReceivedPacket
|
||||
|
||||
|
||||
Reference in New Issue
Block a user