console.s
author Tero Marttila <terom@fixme.fi>
Fri, 07 May 2010 03:16:01 +0300
changeset 13 a18180e37d57
parent 11 49c5eeee4cb7
child 14 1ebd5fc73d86
permissions -rw-r--r--
Serial_Write_c + use in main
9
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     1
.nolist
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     2
.include "m168def.inc"      ; Same family as 328P
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     3
.list
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     4
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     5
.macro poke
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     6
		.message	"No parameters"
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     7
.endm
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     8
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     9
.macro poke_i_8_i
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    10
		ldi			@1, @2
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    11
		sts			@0, @1
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    12
.endm
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    13
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    14
.macro poke_i_16_i
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    15
		ldi			@1, low(@3)
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    16
		sts			@0+0, @1
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    17
		
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    18
		ldi			@2, high(@3)
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    19
		sts			@0+1, @2
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    20
.endm
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    21
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    22
;; Load a 16-bit *word* address into the given register a a byte address
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    23
.macro loadp_16_i
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    24
		ldi			@0, high(2 * @2)
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    25
		ldi			@1, low(2 * @2)
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    26
.endm
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    27
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    28
.macro load_16_i
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    29
		ldi			@0, high(@2)
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    30
		ldi			@1, low(@2)
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    31
.endm
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    32
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    33
;; Interrupt Vector
13
a18180e37d57 Serial_Write_c + use in main
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
    34
.org 0x0000
9
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    35
        rjmp        Main
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    36
13
a18180e37d57 Serial_Write_c + use in main
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
    37
;; Libraries
a18180e37d57 Serial_Write_c + use in main
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
    38
.include "div.inc"			; Division routines
a18180e37d57 Serial_Write_c + use in main
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
    39
9
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    40
;; Serial
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    41
.set SERIAL_BAUD = 103		; 9.6k @ 16Mhz
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    42
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    43
;; Initialize the UART for 
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    44
Serial_Init:
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    45
	; Set up control registers
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    46
		; Single-speed
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    47
		poke		[UCSR0A, r16, (0 << U2X0)]
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    48
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    49
		; Async
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    50
		; n parity
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    51
		; 1 stop
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    52
		; 8 bits
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    53
		poke		[UCSR0C, r16, (0b00 << UMSEL00) | (0b00 << UPM00) | (0 << USBS0) | (0b11 << UCSZ00)]
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    54
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    55
		; Baud rate
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    56
		poke		[UBRR0L, r16:r17, SERIAL_BAUD]
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    57
		
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    58
		; Enable RX
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    59
		; Enable TX
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    60
		; 8 bits
11
49c5eeee4cb7 Echo after greeting
Tero Marttila <terom@fixme.fi>
parents: 9
diff changeset
    61
		poke		[UCSR0B, r16, (1 << RXEN0) | (1 << TXEN0) | (0 << UCSZ02)]
9
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    62
		
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    63
	; Done
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    64
		ret
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    65
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    66
;; Send a single byte on serial port
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    67
; Input byte in r16
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    68
Serial_Send:
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    69
	; Wait for idle
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    70
		lds			r0, UCSR0A
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    71
		sbrs		r0, UDRE0
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    72
		rjmp		Serial_Send
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    73
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    74
	; Copy byte to buffer
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    75
		sts			UDR0, r16
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    76
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    77
	; Done
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    78
		ret
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    79
11
49c5eeee4cb7 Echo after greeting
Tero Marttila <terom@fixme.fi>
parents: 9
diff changeset
    80
;; Read a single byte from serial port
49c5eeee4cb7 Echo after greeting
Tero Marttila <terom@fixme.fi>
parents: 9
diff changeset
    81
; Output byte in r16
49c5eeee4cb7 Echo after greeting
Tero Marttila <terom@fixme.fi>
parents: 9
diff changeset
    82
Serial_Recv:
49c5eeee4cb7 Echo after greeting
Tero Marttila <terom@fixme.fi>
parents: 9
diff changeset
    83
	; Wait for recv
49c5eeee4cb7 Echo after greeting
Tero Marttila <terom@fixme.fi>
parents: 9
diff changeset
    84
		lds			r0, UCSR0A
49c5eeee4cb7 Echo after greeting
Tero Marttila <terom@fixme.fi>
parents: 9
diff changeset
    85
		sbrs		r0, RXC0
49c5eeee4cb7 Echo after greeting
Tero Marttila <terom@fixme.fi>
parents: 9
diff changeset
    86
		rjmp		Serial_Recv
49c5eeee4cb7 Echo after greeting
Tero Marttila <terom@fixme.fi>
parents: 9
diff changeset
    87
49c5eeee4cb7 Echo after greeting
Tero Marttila <terom@fixme.fi>
parents: 9
diff changeset
    88
	; Copy byte from buffer
49c5eeee4cb7 Echo after greeting
Tero Marttila <terom@fixme.fi>
parents: 9
diff changeset
    89
		lds			r16, UDR0
49c5eeee4cb7 Echo after greeting
Tero Marttila <terom@fixme.fi>
parents: 9
diff changeset
    90
49c5eeee4cb7 Echo after greeting
Tero Marttila <terom@fixme.fi>
parents: 9
diff changeset
    91
	; Done
49c5eeee4cb7 Echo after greeting
Tero Marttila <terom@fixme.fi>
parents: 9
diff changeset
    92
		ret
49c5eeee4cb7 Echo after greeting
Tero Marttila <terom@fixme.fi>
parents: 9
diff changeset
    93
9
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    94
;; Write nul-terminated string to serial port
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    95
; Input string in Z
13
a18180e37d57 Serial_Write_c + use in main
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
    96
Serial_Write_s:
9
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    97
	; Load byte to r16
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    98
		lpm			r16, Z+
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    99
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   100
	; Quit if nul
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   101
		tst			r16
13
a18180e37d57 Serial_Write_c + use in main
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   102
		breq		_serial_writes_end
9
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   103
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   104
	; Write it
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   105
		rcall		Serial_Send
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   106
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   107
	; Continue
13
a18180e37d57 Serial_Write_c + use in main
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   108
		rjmp		Serial_Write_s
9
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   109
13
a18180e37d57 Serial_Write_c + use in main
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   110
_serial_writes_end:
9
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   111
		ret
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   112
13
a18180e37d57 Serial_Write_c + use in main
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   113
;; Write char to serial port
a18180e37d57 Serial_Write_c + use in main
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   114
; Input byte in r16
a18180e37d57 Serial_Write_c + use in main
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   115
Serial_Write_c:
a18180e37d57 Serial_Write_c + use in main
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   116
		; ASCII offset for '0'
a18180e37d57 Serial_Write_c + use in main
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   117
		ldi			r17, 48
a18180e37d57 Serial_Write_c + use in main
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   118
		mov			r4, r17	
a18180e37d57 Serial_Write_c + use in main
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   119
	
a18180e37d57 Serial_Write_c + use in main
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   120
	; Convert
a18180e37d57 Serial_Write_c + use in main
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   121
		ldi			r17, 100
a18180e37d57 Serial_Write_c + use in main
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   122
		call		div8u
a18180e37d57 Serial_Write_c + use in main
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   123
		add			r16, r4
a18180e37d57 Serial_Write_c + use in main
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   124
		rcall		Serial_Send
a18180e37d57 Serial_Write_c + use in main
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   125
		mov			r16, r15
a18180e37d57 Serial_Write_c + use in main
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   126
a18180e37d57 Serial_Write_c + use in main
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   127
		ldi			r17, 10
a18180e37d57 Serial_Write_c + use in main
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   128
		call		div8u
a18180e37d57 Serial_Write_c + use in main
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   129
		add			r16, r4
a18180e37d57 Serial_Write_c + use in main
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   130
		rcall		Serial_Send
a18180e37d57 Serial_Write_c + use in main
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   131
		mov			r16, r15
a18180e37d57 Serial_Write_c + use in main
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   132
a18180e37d57 Serial_Write_c + use in main
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   133
		add			r16, r4
a18180e37d57 Serial_Write_c + use in main
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   134
		rcall		Serial_Send
a18180e37d57 Serial_Write_c + use in main
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   135
		
a18180e37d57 Serial_Write_c + use in main
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   136
	ret
a18180e37d57 Serial_Write_c + use in main
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   137
9
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   138
;; Program
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   139
message:	.db "Hello World", 13, 10, 0
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   140
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   141
Main:
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   142
; Initialization
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   143
	; Stack
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   144
		poke		[SPL, r16:r17, RAMEND]
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   145
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   146
    ; Enable interrupts
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   147
        sei
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   148
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   149
	; Init
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   150
		rcall		Serial_Init
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   151
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   152
; Main program
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   153
		ldi			ZH, high(message * 2)
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   154
		ldi			ZL, low(message * 2)
30c3807baac1 serial console
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   155
		
13
a18180e37d57 Serial_Write_c + use in main
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   156
		rcall		Serial_Write_s
11
49c5eeee4cb7 Echo after greeting
Tero Marttila <terom@fixme.fi>
parents: 9
diff changeset
   157
49c5eeee4cb7 Echo after greeting
Tero Marttila <terom@fixme.fi>
parents: 9
diff changeset
   158
; Echo out
49c5eeee4cb7 Echo after greeting
Tero Marttila <terom@fixme.fi>
parents: 9
diff changeset
   159
		sbi			DDRB, PORTB5
49c5eeee4cb7 Echo after greeting
Tero Marttila <terom@fixme.fi>
parents: 9
diff changeset
   160
		ldi			r20, 0
13
a18180e37d57 Serial_Write_c + use in main
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   161
		ldi			r21, 0
11
49c5eeee4cb7 Echo after greeting
Tero Marttila <terom@fixme.fi>
parents: 9
diff changeset
   162
49c5eeee4cb7 Echo after greeting
Tero Marttila <terom@fixme.fi>
parents: 9
diff changeset
   163
Main_Echo:
13
a18180e37d57 Serial_Write_c + use in main
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   164
		; blink LED
11
49c5eeee4cb7 Echo after greeting
Tero Marttila <terom@fixme.fi>
parents: 9
diff changeset
   165
		out			PORTB, r20
13
a18180e37d57 Serial_Write_c + use in main
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   166
		
a18180e37d57 Serial_Write_c + use in main
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   167
		; read
11
49c5eeee4cb7 Echo after greeting
Tero Marttila <terom@fixme.fi>
parents: 9
diff changeset
   168
		rcall		Serial_Recv
13
a18180e37d57 Serial_Write_c + use in main
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   169
		push		r16
a18180e37d57 Serial_Write_c + use in main
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   170
		
a18180e37d57 Serial_Write_c + use in main
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   171
		; running counter
a18180e37d57 Serial_Write_c + use in main
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   172
		inc			r21
a18180e37d57 Serial_Write_c + use in main
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   173
		mov			r16, r21
a18180e37d57 Serial_Write_c + use in main
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   174
		rcall		Serial_Write_c
a18180e37d57 Serial_Write_c + use in main
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   175
		
a18180e37d57 Serial_Write_c + use in main
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   176
		; ' '
a18180e37d57 Serial_Write_c + use in main
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   177
		ldi			r16, 32
11
49c5eeee4cb7 Echo after greeting
Tero Marttila <terom@fixme.fi>
parents: 9
diff changeset
   178
		rcall		Serial_Send
13
a18180e37d57 Serial_Write_c + use in main
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   179
		
a18180e37d57 Serial_Write_c + use in main
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   180
		pop			r16
a18180e37d57 Serial_Write_c + use in main
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   181
		rcall		Serial_Send
a18180e37d57 Serial_Write_c + use in main
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   182
		
a18180e37d57 Serial_Write_c + use in main
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   183
		; '\r\n'
a18180e37d57 Serial_Write_c + use in main
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   184
		ldi			r16, 13
a18180e37d57 Serial_Write_c + use in main
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   185
		rcall		Serial_Send
a18180e37d57 Serial_Write_c + use in main
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   186
		ldi			r16, 10
a18180e37d57 Serial_Write_c + use in main
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   187
		rcall		Serial_Send
a18180e37d57 Serial_Write_c + use in main
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   188
		
a18180e37d57 Serial_Write_c + use in main
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   189
		; toggle
11
49c5eeee4cb7 Echo after greeting
Tero Marttila <terom@fixme.fi>
parents: 9
diff changeset
   190
		com			r20
13
a18180e37d57 Serial_Write_c + use in main
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   191
		
a18180e37d57 Serial_Write_c + use in main
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
   192
		; continue
11
49c5eeee4cb7 Echo after greeting
Tero Marttila <terom@fixme.fi>
parents: 9
diff changeset
   193
		rjmp		Main_Echo
49c5eeee4cb7 Echo after greeting
Tero Marttila <terom@fixme.fi>
parents: 9
diff changeset
   194