; uart functions
+; default uart settings
+; infdef UART_BR_H
+.equ UART_BR_H = 0
+; infdef UART_BR_L
+.equ UART_BR_L = 25
+
UART_INIT:
; baudrate
- ldi tmp,
- out UBRRH,tmp
- ldi tmp,
- out UBRRL,tmp
+ ldi tmp1,UART_BR_H
+ sts UBRR0H,tmp1
+ ldi tmp1,UART_BR_L
+ out UBRR0L,tmp1
; enable
- ldi tmp,(1<<RXEN)|(1<<TXEN)
- out UCSRB,tmp
+ ldi tmp1,(1<<RXEN)|(1<<TXEN)
+ out UCSR0B,tmp1
+
+ ; frame format -> 8n1
+ ldi tmp1,(1<<UCSZ00)|(1<<UCSZ01)
+ sts UCSR0C,tmp1
+
+ ret
+
+UART_INT_RX_INIT:
+
+ in tmp1,UCSR0B
+ sbr tmp1,(1<<RXCIE0)
+ out UCSR0B,tmp1
+
+ ret
+
+UART_INT_TX_INIT:
- ; frame format
+ in tmp1,UCSR0B
+ sbr tmp1,(1<<TXCIE0)
+ out UCSR0B,tmp1
ret
UART_RX:
; get/store received byte
- sbis UCSRA,RXC
+ sbis UCSR0A,RXC0
rjmp UART_RX
- in tmp,UDR0
+ in uart_rxtx,UDR0
ret
UART_TX:
- ; transmit content of tmp
- sbis UCSRA,UDRE
+ ; transmit content of uart_rxtx
+ sbis UCSR0A,UDRE
rjmp UART_TX
- out UDR0,tmp
+ out UDR0,uart_rxtx
ret