diff --git a/avr/modules/uart_hw/init_uart1.asm b/avr/modules/uart_hw/init_uart1.asm new file mode 100644 index 0000000..23b699b --- /dev/null +++ b/avr/modules/uart_hw/init_uart1.asm @@ -0,0 +1,46 @@ +; *************************************************************************** +; 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<