avr: minor work on init code.

This commit is contained in:
Martin Preuss
2025-01-19 15:48:08 +01:00
parent ecb2d85ea2
commit d631c5465f
2 changed files with 52 additions and 6 deletions

View File

@@ -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<<USBS1)|(3<<UCSZ10)
out UCSR1C, r16
ret
; @end

View File

@@ -16,15 +16,15 @@
UART_HW_Uart1_RawInit:
; set baudrate
;.if clock == 8000000
; ldi r16, 25 ; (19.2Kb/s at 8MHz)
; ldi r17, 0
;.endif
.if clock == 8000000
ldi r16, 25 ; (19.2Kb/s at 8MHz)
ldi r17, 0
.endif
;.if clock == 1000000
.if clock == 1000000
ldi r16, 3 ; (19.2Kb/s at 1MHz)
ldi r17, 0
;.endif
.endif
sts UBRR1H, r17
sts UBRR1L, r16