console.s
changeset 11 49c5eeee4cb7
parent 9 30c3807baac1
child 13 a18180e37d57
equal deleted inserted replaced
10:faca61cf204c 11:49c5eeee4cb7
    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