.include "m16def.inc"




.org 0x00					
					rjmp reset ; Reset Handler
.org 0x02
					reti ;EXT_INT0 ; IRQ0 Handler
.org 0x04
					reti ;EXT_INT1 ; IRQ1 Handler
.org 0x06
					reti ;TIM2_COMP ; Timer2 Compare Handler
.org 0x08
					reti ;mplex ;TIM2_OVF ; Timer2 Overflow Handler
.org 0x0A
					reti ;TIM1_CAPT ; Timer1 Capture Handler
.org 0x0C
					reti ;TIM1_COMPA ; Timer1 CompareA Handler
.org 0x0E
					reti ;TIM1_COMPB ; Timer1 CompareB Handler
.org 0x10
					reti ;TIM1_OVF ; Timer1 Overflow Handler
.org 0x12
					reti; rjmp pwm ;TIM0_OVF ; Timer0 Overflow Handler
.org 0x14
					reti ;SPI_STC ; SPI Transfer Complete Handler
.org 0x16
					rjmp dmx2 ;USART_RXC ; USART RX Complete Handler
.org 0x18
					reti ;USART_UDRE ; UDR Empty Handler
.org 0x1A
					reti ;USART_TXC ; USART TX Complete Handler
.org 0x1C
					reti ;ADC ; ADC Conversion Complete Handler
.org 0x1E
					reti ;EE_RDY ; EEPROM Ready Handler
.org 0x20
					reti ;ANA_COMP ; Analog Comparator Handler
.org 0x22
					reti ;TWSI ; Two-wire Serial Interface Handler
.org 0x24
					reti ;EXT_INT2 ; IRQ2 Handler
.org 0x26
					reti ;TIM0_COMP ; Timer0 Compare Handler
.org 0x28
					reti ;SPM_RDY ; Store Program Memory Ready Handler





reset:				ldi r16, HIGH (RAMEND)
					out SPH, r16
					ldi r16, LOW (RAMEND)
					out SPL, r16
					ldi r16, 0xFF
					out DDRA, r16
					out DDRB, r16
					out DDRC, r16
					com r16
					out DDRD, r16
					out PORTA, r16
					out PORTB, r16
					out PORTC, r16
					ldi r16, 0b11111110
					out PORTD, r16
					ldi r16, 0b01000001
					out TIMSK, r16
					clr r16
					out UBRRH, r16
					clr r16
					sts $0065, r16
					sts $0066, r16
					ldi r16, 2
					out UBRRL, r16
					mov r14, r16
					ldi r16, 0b10010100
					out UCSRB, r16
					ldi r16, 0b10000110
					out UCSRC, r16
					sbi PORTC, 3
					cbi PORTC, 4
					clr r17				
					sts $0067, r17		
					sts $0068, r17		
					ldi XL, LOW (2)
					ldi XH, HIGH(2)
					ldi r16, 3
					sts $0069, r16
					clr r16
					sts $006A, r16
					clr r22
					sei
					
;------------------Hauptprog------------------

haupt:				
nextbitout:			lds r17, $0070
					cpi r17, 127
					brsh biton
					cbr r21, 1
					rjmp rolout
biton:				sbr r21, 1

					ldi r16, 8
nextsrout:			rol r21
					
					brcs srbiton
					cbi PORTC, 0
					rjmp nextsr
srbiton:			sbi PORTC, 0
nextsr:				sbi PORTC, 1
					cbi PORTC, 1
					dec r16
					brne nextsrout
					sbi PORTC, 2
					cbi PORTC, 2
					rjmp haupt



;------------------DMX - Empfang--------------------------




dmx2:				in r2, SREG
					
					sbrc r23, 0
					rjmp dmxdata
					sbic UCSRB, RXB8
					rjmp enddmx
					in r12, UDR
					inc r22
					cpi r22, 2
					brne ledwsoff
					ser YL
					ser YH
					sbi PORTB, 4
					clr r22
					sbr r23, 1
					rjmp enddmx
dmxdata:			in r12, UDR
					clr r24
					adiw YL, 1
					cpi YL, 7
					cpc YH, r24
					brne enddmx
					sts $0070, r12
					cbr r23, 1
ledwsoff:			cbi PORTB, 4
enddmx:				in r12, UDR
					
					out SREG, r2
					reti
