projects
/
my-code
/
atmel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
clean up + uart tx fix
[my-code/atmel.git]
/
hdw-tank
/
uart.asm
diff --git
a/hdw-tank/uart.asm
b/hdw-tank/uart.asm
index
1ca82e0
..
aaa0249
100644
(file)
--- a/
hdw-tank/uart.asm
+++ b/
hdw-tank/uart.asm
@@
-1,36
+1,60
@@
; uart functions
; 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
UART_INIT:
; baudrate
- ldi tmp
,
- out UBRRH,tmp
- ldi tmp
,
- out UBRR
L,tmp
+ ldi tmp
1,UART_BR_H
+ sts UBRR0H,tmp1
+ ldi tmp
1,UART_BR_L
+ out UBRR
0L,tmp1
; enable
; 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
ret
UART_RX:
; get/store received byte
- sbis UCSR
A,RXC
+ sbis UCSR
0A,RXC0
rjmp UART_RX
rjmp UART_RX
- in
tmp
,UDR0
+ in
uart_rxtx
,UDR0
ret
UART_TX:
ret
UART_TX:
- ; transmit content of
tmp
- sbis UCSRA,UDRE
+ ; transmit content of
uart_rxtx
+ sbis UCSR
0
A,UDRE
rjmp UART_TX
rjmp UART_TX
- out UDR0,
tmp
+ out UDR0,
uart_rxtx
ret
ret