Ich bin zwar kein Bascomer, aber ich versuche mal das Programm zu beschreiben(aus meiner Sicht)Ich dachte der MC ist im "Leerlauf" und wenn der gewünschte Zeitpunkt erreicht wird, dann macht er mal schnell ein paar Befehle - oder ist der Ansatz von mir da Falsch?
Die Haupftschleife wartet solange bis Die Variable H1 10 beträgt, und die wird mit hilfe von Timer Overflow Interrupt inkrementiert.
Wenn dann die magische 10 kommt startest Du Deine messungen und zwar in einer Riesenschleife 4 mal 16 Messungen.
So eine Getadc Funktion macht nichts anderes, als die Messung zu starten und
abzuwarten, bis sie beendet ist(laut Assembler Code von Picknick).
Du machst dann 64 mal nichts anderes als "Starte die Messung und tue nichts bis sie beendet ist".
Klar kommt zwischendurch noch der Timer und setzt da Deinen Flag, ich denke sogar mehrmals, das kriegst Du aber nicht mit weil Du noch auf Dein ADC wartest.
Sollte ich da falsch liegen, wird man mich hier sicher darauf hinweisen, vielleicht sehe ich das falsch, wie gesagt ich bin kein Bascomer![]()
Besser wäre natürlich den ADC in Freilaufmodus zu starten und in einen ADC_Ready Interrupt Deine Muxkanäle umzuschalten und natürlich die 16 Messungen addieren und dividieren.
Die Ergebnise dann schön in Ram geschrieben, dann kann sich Deine Hauptschleife wirklich langweilen.
Gruß Sebastian
Lesezeichen