$regfile = "m8def.dat" 'ATmega8-Deklarationen $crystal = 3686400 'Quarz: 3,6864 MHz $baud = 38400 'Baudrate zum PC: 38400 Baud ' On Adc Onadc 'ADC-Interrupt-Routine festlegen ' Dim Curch As Byte 'Fuer den momentanen A/D-Kanal Dim Temp As Byte 'Nur zum Zwischenspeichern ' Ddrc = &B00000000 'PC7...PC0=0: PortC-Pins auf Eingang Admux = &B01100000 'Bit5=1: LeftAdjust, nur 8 Bit in ADCH 'Bits3...0=0000: Initial Pin ADC0 messen Adcsra = &B11001111 'Bit7=1:AdcAn,Bit6=1:Start 'Bit5=0:Nicht freilaufend,Bit3=1:IntrAn 'Bits2+1+0=111: AdcClock=AvrClock/128 Sreg.7 = 1 Do : Loop 'Hauptschleife Onadc: 'ADC-Interrupt-Routine Udr = Adch 'Meßwert in die UART geben Incr Curch 'Naechster Kanal (CurCh=CurCh+1) If Curch > 2 Then Curch = 0 'Kanal 0-2 messen Temp = Admux And &B11110000 'Oberste 4 Bits merken Admux = Temp Or Curch 'Neuer Kanal + gemerkte Bits Adcsra.6 = 1 'Naechste Messung starten Return funktioniert nicht: $regfile = "m8def.dat" 'ATmega8-Deklarationen $crystal = 3686400 'Quarz: 3,6864 MHz $baud = 38400 'Baudrate zum PC: 38400 Baud ' On Adc Onadc 'ADC-Interrupt-Routine festlegen ' Dim Curch As Byte 'Fuer den momentanen A/D-Kanal Dim Temp As Byte 'Nur zum Zwischenspeichern ' Ddrc = &B00000000 'PC7...PC0=0: PortC-Pins auf Eingang Admux = &B01000000 'Bit5=0: 10 Bit in ADCH und ADCL 'Bits3...0=0000: Initial Pin ADC0 messen Adcsra = &B11001111 'Bit7=1:AdcAn,Bit6=1:Start 'Bit5=0:Nicht freilaufend,Bit3=1:IntrAn 'Bits2+1+0=111: AdcClock=AvrClock/128 Sreg.7 = 1 Do : Loop 'Hauptschleife Onadc: 'ADC-Interrupt-Routine Udr = Adcl Udr = Adch 'Incr Curch If Curch > 2 Then Curch = 0 '0-2 werden abgefragt Temp = Admux And &B11110000 'Oberste 4 Bits merken Admux = Temp Or Curch 'Neuer Kanal + gemerkte Bits Adcsra.6 = 1 'Naechste Messung starten Return