ldi temp,high(RAMEND) ;Stackpointer initialisieren out SPH, temp ldi temp, low(RAMEND) out SPL, temp ldi temp, 0x00 ;Port A = Eingang Analogsignale out DDRA, temp ldi temp, 0xFF ;Port B = Ausgang out DDRB, temp ldi temp, 0xFF ;Port C = Ausgang out DDRC, temp ldi temp, 0x00 ;Port D = Eingang out DDRD, temp ldi temp,0b00000111 ;ADC-Frequenz 1.000.000 Hz / 128 = out ADCSR,temp ;7.812 Hz cbi ADMUX, REFS1 ;Externe Referenzspannung wählen cbi ADMUX, REFS0 cbi ADCSR, ADIE ;Interruptsteuerung = AUS sbi ADCSR, ADEN ;ADC generell einschalten ADWandlung1: cbi ADMUX, MUX0 ;Kanal 1 auswählen = Drahtvorschub cbi ADMUX, MUX1 sbi ADCSR,ADSC ;Startet Wandlung, das ADSC-Flag löscht ;sich selbst wenn Wandlung fertig ist Fertig1: sbis ADCSR,ADIF ;Flag, busy? rjmp Fertig1 ;springt raus, wenn fertig in temp,ADCL ;Lese AD-Wert ein in temp2,ADCH ;Ergebnis 10bit ror temp2 ;Wandelt Ergebniss in 8bit um ror temp ror temp2 ror temp ;Ergebniss steht in temp ret