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
Lesezeichen