Hier nochmal das Programm mit dem Anhang hat irgendwie nicht geklappt.
.include "8535def.inc"
.def temp = r16
.def hADC = r17
.def lADC = r18
.cseg
rjmp Initial ; nach RESET zum Hauptprogramm
reti ;External Interrupt0 Vector Address
reti ;External Interrupt1 Vector Address
reti ;Timer2 compare match Vector Address
reti ;Timer2 overflow Vector Address
reti ;Timer1 Input Capture Vector Address
reti ;Timer1 Output Compare A Interrupt Vector Address
reti ;Timer1 Output Compare B Interrupt Vector Address
reti ;OverflowTimer1 Interrupt Vector Address
reti ;OverflowTimer0 Interrupt Vector Address
reti ;SPI Interrupt Vector Address
reti ;UART Receive Complete Interrupt Vector Address
reti ;UART Data Register Empty Interrupt Vector Address
reti ;UART Transmit Complete Interrupt Vector Address
rjmp Analog ;ADC Conversion Complete Interrupt Vector Address
reti ;EEPROM Write Complete Interrupt Vector Address
reti ;Analog Comparator Interrupt Vector Address
Analog:
in hADC,ADCH
in lADC,ADCL
reti
Initial:
;Stackpointer initialisieren
ldi temp, LOW(RAMEND) ;LOW-Byte der obersten RAM-Adresse
out SPL, temp
ldi temp, HIGH(RAMEND) ;HIGH-Byte der obersten RAM-Adresse
out SPH, temp
ldi temp,8000000/(9600*16)-1 ;Baudrate 9600 einstellen
out UBRR,temp
sbi UCR,TXEN ;TX aktivieren
ldi temp,0b11101110 ;ADC aktivieren free running mode
Interrupt aktiviert
out ADCSR,temp ;Vorteiler 64
ldi temp,0b00000000 ;ADC Channel wählen Channel=0
out ADMUX,temp
sei ;Interrupsts Global freigeben
main:
sbis UBRR,UDRE ;Warten, bis UDR bereit ist
rjmp main
out UDR, lADC ;Low Byte des ADC Wertes ausgeben (nur zu
Testzwecken)
rjmp main