//UART megszakítást vár:
//r: kiolvassa az időt az RTC-ből és elküldi a PC-nek
.include "m128def.inc"

.org 0x0000
rjmp START

.org 0x003C
rjmp OLV_KULD

.def temp				=R16
.def temp2				=R17
.def temp3				=R18
.def adatbe				=R19
.def adatki				=R20

.equ szabadmem			=0x0100
.equ BaudRate=103;9600@16MHz

#define RTC		PORTA,0

#define SS		DDRB,0
#define SCK		DDRB,1
#define MOSI	DDRB,2
#define MISO	DDRB,3

START:
	ldi temp,low(ramend)
	out SPL,temp
	ldi temp,high(ramend)
	out SPH,temp

	sbi DDRA,0
	
	clr temp
	out DDRB,temp

	ldi temp,0b00011000;TxD,Backlight
	out DDRD,temp
	
USB_INIT:
	ldi temp,0b10011000;RXINT_enable,TX0_enable,RX0_enable
	sts UCSR1B,temp
	ldi temp,0b00000110;8bit,1stop bit,no parity
	sts UCSR1C,temp
	ldi temp,high(BaudRate)
	sts UBRR1H,temp
	ldi temp,low(BaudRate)
	sts UBRR1L,temp

SPI_INIT://SS legyen kimenet adatcserénél!!!
	ldi temp,0b01000100;SPI_enabled,Slave,CPHA
	out SPCR,temp

	sei	

LOOP:
	rjmp LOOP
;---------------------------------------------------------------------------------------------	
OLV_KULD:
	lds adatbe,UDR1
	ldi temp,'r'
	cpse adatbe,temp
	reti
	rcall RTC_OLV
	reti

;---------------------------------------------------------------------------------------------	
RTC_OLV:
	sbi RTC//RTC felkeltése

FOGAD0:	
	clr temp;nullát küld
	out SPDR,temp
FOGAD:
	sbis SPSR,SPIF
	rjmp FOGAD
	in temp,SPDR

	rcall USB_KULD
	cbi RTC
	ret

;---------------------------------------------------------------------------------------------	
USB_KULD:	
	sts UDR1,temp
TXD_WAIT:	
	lds temp, UCSR1A
	sbrc temp,5
	ret
	rjmp TXD_WAIT
