Hallo,

um meinen timingkritischen Code zu schonen, will ich weder einen Interrupt bei fertiger AD-Wandlung setzen, noch auf eine einzelne Wandlung warten. Deshalb habe ich folgendes ausgeknobelt:

Ich möchte ADC0 und ADC1 abfragen, deshalb setze ich abwechselnd die Register. Je nach gesetztem Register und ob das Readyflag gesetzt ist, fülle ich eine Variable.

Im Datasheet steht zum löschen des Adcsra.adif ich solle 1 reinschreiben!?!
Ich frage nach 1 ab und setze dann 1 !?!

Stimmt das so oder ist das kompletter Rossmist?

Code:
      If Admux = &B01000000 And Adcsra.adif = 1 Then
         Adcsra.adif = 1
         Data_array(6) = Adcl
         Admux = &B01000001                                 'ADC1 setzen
         Data_array(5) = Adch
      Elseif Admux = &B01000001 And Adcsra.adif = 1 Then
         Adcsra.adif = 1
         Data_array(8) = Adcl
         Admux = &B01000000                                 'ADC0 setzen
         Data_array(7) = Adch
      End If
Günter