equal
deleted
inserted
replaced
53 poke [UBRR0L, r16:r17, SERIAL_BAUD] |
53 poke [UBRR0L, r16:r17, SERIAL_BAUD] |
54 |
54 |
55 ; Enable RX |
55 ; Enable RX |
56 ; Enable TX |
56 ; Enable TX |
57 ; 8 bits |
57 ; 8 bits |
58 poke [UCSR0B, r16, (0 << RXEN0) | (1 << TXEN0) | (0 << UCSZ02)] |
58 poke [UCSR0B, r16, (1 << RXEN0) | (1 << TXEN0) | (0 << UCSZ02)] |
59 |
59 |
60 ; Done |
60 ; Done |
61 ret |
61 ret |
62 |
62 |
63 ;; Send a single byte on serial port |
63 ;; Send a single byte on serial port |
68 sbrs r0, UDRE0 |
68 sbrs r0, UDRE0 |
69 rjmp Serial_Send |
69 rjmp Serial_Send |
70 |
70 |
71 ; Copy byte to buffer |
71 ; Copy byte to buffer |
72 sts UDR0, r16 |
72 sts UDR0, r16 |
|
73 |
|
74 ; Done |
|
75 ret |
|
76 |
|
77 ;; Read a single byte from serial port |
|
78 ; Output byte in r16 |
|
79 Serial_Recv: |
|
80 ; Wait for recv |
|
81 lds r0, UCSR0A |
|
82 sbrs r0, RXC0 |
|
83 rjmp Serial_Recv |
|
84 |
|
85 ; Copy byte from buffer |
|
86 lds r16, UDR0 |
73 |
87 |
74 ; Done |
88 ; Done |
75 ret |
89 ret |
76 |
90 |
77 ;; Write nul-terminated string to serial port |
91 ;; Write nul-terminated string to serial port |
105 sei |
119 sei |
106 |
120 |
107 ; Init |
121 ; Init |
108 rcall Serial_Init |
122 rcall Serial_Init |
109 |
123 |
110 loop: |
|
111 ; Main program |
124 ; Main program |
112 ldi ZH, high(message * 2) |
125 ldi ZH, high(message * 2) |
113 ldi ZL, low(message * 2) |
126 ldi ZL, low(message * 2) |
114 |
127 |
115 rcall Serial_Write |
128 rcall Serial_Write |
116 |
129 |
117 ; repeat |
130 ; Echo out |
118 rjmp loop |
131 sbi DDRB, PORTB5 |
|
132 ldi r20, 0 |
|
133 |
|
134 Main_Echo: |
|
135 out PORTB, r20 |
|
136 |
|
137 rcall Serial_Recv |
|
138 rcall Serial_Send |
|
139 |
|
140 com r20 |
|
141 |
|
142 rjmp Main_Echo |
|
143 |