diff --git a/avr/modules/uart_hw/defs.asm b/avr/modules/uart_hw/defs.asm index 1eb33a2..370457d 100644 --- a/avr/modules/uart_hw/defs.asm +++ b/avr/modules/uart_hw/defs.asm @@ -12,11 +12,17 @@ .equ UART_HW_IFACE_WRITEBUF_SIZE = 8 +.equ UART_HW_BUFFER_INUSE_BIT = 7 +.equ UART_HW_BUFFER_IFACENUM1_BIT = 1 +.equ UART_HW_BUFFER_IFACENUM0_BIT = 0 + + .equ UART_HW_MODE_OFF = 0 .equ UART_HW_MODE_IDLE = 1 .equ UART_HW_MODE_READING = 2 .equ UART_HW_MODE_WRITING = 4 .equ UART_HW_MODE_SKIPPING = 8 +.equ UART_HW_MODE_WAITATTNLOW = 16 ; waiting after setting ATTN low .equ UART_HW_STATUS_UNDERRUN = 0x01 @@ -26,14 +32,16 @@ .equ UART_HW_STATUS_ATTN = 0x80 -.equ UART_HW_IFACE_OFFS_MODE = 0 -.equ UART_HW_IFACE_OFFS_STATUS = 1 -.equ UART_HW_IFACE_OFFS_READTIMER = 2 -.equ UART_HW_IFACE_OFFS_WRITETIMER = 3 -.equ UART_HW_IFACE_OFFS_ERR_OVR = 4 +.equ UART_HW_IFACE_OFFS_IFACENUM = 0 ; interface number (put into received messages) +.equ UART_HW_IFACE_OFFS_MODE = 1 +.equ UART_HW_IFACE_OFFS_STATUS = 2 +.equ UART_HW_IFACE_OFFS_READTIMER = 3 +.equ UART_HW_IFACE_OFFS_WRITETIMER = 4 +.equ UART_HW_IFACE_OFFS_ERR_OVR = 5 +.equ UART_HW_IFACE_OFFS_ERR_CONTENT = 6 ; ringbuffer for incoming chars -.equ UART_HW_IFACE_OFFS_READBUF = 5 +.equ UART_HW_IFACE_OFFS_READBUF = 7 .equ UART_HW_IFACE_OFFS_READBUF_MAX = UART_HW_IFACE_OFFS_READBUF .equ UART_HW_IFACE_OFFS_READBUF_USED = UART_HW_IFACE_OFFS_READBUF+1 .equ UART_HW_IFACE_OFFS_READBUF_RDPOS = UART_HW_IFACE_OFFS_READBUF+2 diff --git a/avr/modules/uart_hw/init_uart1.asm b/avr/modules/uart_hw/init_uart1.asm deleted file mode 100644 index 23b699b..0000000 --- a/avr/modules/uart_hw/init_uart1.asm +++ /dev/null @@ -1,46 +0,0 @@ -; *************************************************************************** -; copyright : (C) 2025 by Martin Preuss -; email : martin@libchipcard.de -; -; *************************************************************************** -; * This file is part of the project "AqHome". * -; * Please see toplevel file COPYING of that project for license details. * -; *************************************************************************** - - - - -.cseg - - - -; --------------------------------------------------------------------------- -; @routine UART_HW_Uart1_Init @global -; -; @param Y pointer to interface data in SRAM (see @ref UART_HW_IFACE_OFFS_STATE) -; @clobbers R16, R17, X - -UART_HW_Uart1_Init: - rcall UART_HW_InitInterface - - ; set baudrate -.if clock == 8000000 - ldi r16, 25 ; (19.2Kb/s at 8MHz) - ldi r17, 0 -.endif - -.if clock == 1000000 - ldi r16, 2 ; (19.2Kb/s at 1MHz) - ldi r17, 0 -.endif - - out UBRR1H, r17 - out UBRR1L, r16 - - ; set character format - ldi r16, (1<