Zitat Zitat von oberallgeier
Zitat Zitat von Gock
... Aber wie schon gesagt, Funktiosaufruf kostet viel Zeit, also lieber eine Funktion schreiben ...
Muss ich/man das jetzt verstehen?
Die Betonung liegt auf EINER Funktion, die den Text 8-mal enthält und NICHT 8 mal aufgerufen wird, weil das ja viel Zeit kostet...

Zitat Zitat von oberallgeier
Zitat Zitat von Gock
... bisschen Zeit sparen, ... nächste Konvertierung startest, bevor Du das ADC Register ließt ...
Hmmm, eine seltsame Reihenfolge. Das mag ja stimmen, dass das Ergebnis theoretisch drin bleibt, aber ich mache das aber immer genau anders: erst lesen, z.B. so: "inwert = ADC;" und danach sofort die nächste Wandlung starten. Dies ist dann auch unempfindlich gegen laufende ISR. Denn wenn man erst startet und danach ausliest - und genau dazwischen kommt eine ISR . . . . . trallalallala
Normalerweise mache ich es auch anders, denn das ist sicherer und besser.
Um ganz sicher zu gehen müsste man ohnehin in jedem Fall vorher die IRQs abschalten, weil ADC ein 16BitRegister ist und soweit ich weiß puffert das weder der µC doppelt, noch erledigt das der Compiler für mich. Aber da es in diesem Fall scheinbar um nichts anderes geht, als besonoders schnell zu sein, sollten ohnehin keine anderen IRQs anktiviert sein, sonst ist die Geschwindigkeit schnell wieder dahin und dann kann man diesen Trick schon mal wagen.
Gruß