loop1: inc r20 ;zähler +1 ldi r16, 0b00000001 ;ADC channel 1 out ADMUX, r16 ;portC1 ADC channel 1 sbi ADCSRA, 6 ;starte nächste konvertierung warten1: sbis ADCSRA, 4 ;skip wenn AD conversion abgeschlossen und register aktualisiert rjmp warten1 in r26, ADCL ;low-teil auslesen in r27, ADCH ;high-teil auslesen ;.................... ;10 bit zu 8 bit auflösung, alle bits 2 nach rechts asr r27 ;schiebe bit 0 des high-teils ins C-Flag bit1>bit0 ror r26 ;schiebe alle bits nach rechts, C-Flag ins bit7 asr r27 ;schiebe nächstes bit des high teils ins C-Flag ror r26 ;schiebe alle bits nach rechts, C-Flag ins bit 7 add r18, r26 adc r19, r27 cp r20, 16 ;zähler =16? brne loop1 ;wenn nicht dann geh zu loop0 ;wert durch 16 teilen lsr r19 ;bits logisch nach rechts schieben (dividieren durch 2) ror r18 ;schiebe alle bits nach rechts, C-Flag ins bit 7 lsr r19 ;bits logisch nach rechts schieben (dividieren durch 2) ror r18 ;schiebe alle bits nach rechts, C-Flag ins bit 7 lsr r19 ;bits logisch nach rechts schieben (dividieren durch 2) ror r18 ;schiebe alle bits nach rechts, C-Flag ins bit 7 lsr r19 ;bits logisch nach rechts schieben (dividieren durch 2) ror r18 ;schiebe alle bits nach rechts, C-Flag ins bit 7 sts 0x61, r18 ;r18 in sram speichern ;werte senden putChar1: sbis UCSRA, 5 ;bit 5 = UDR empty (versuch kontrollwerte senden) rjmp putChar1 ;warten bis UDR bereit out UDR, r18 ;senden ;werte senden ende ldi r18, 0 ;werteregister lo-teil zurücksetzen ldi r19, 0 ;werteregister hi-teil zurücksetzen ldi r20, 0 ;zähler zurücksetzen