Wenn die anderen Int nicht zu häufig kommen gibts auch kein Terror.

Ich rechne nochmal.

Eine Einzelwandlung dauert komplett 25 Taktzyklen (Lt. Datenblatt) und der Takt darf bei 10 Bit Auflösung max. 200 Khz betragen.
(Geht man höher dann leidet die auflösung aber es geht flotter.)
Das sind nach Adam Riese 125µs pro Wandlung wenn man streng nach Datenblatt geht)
Bei 5x10 bzw 5x8 Wandlungen am Block sind das 6.25 bzw. 5ms für alles.

Bei 100 Messungen/s wird also alle 10ms ein messzyklus gestartet.

Dh. du hast mit der einfachen Methode 5ms für dich alleine um was anderes zu machen.
Bei nem Systemtakt von 16Mhz also 80000 Taktzyklen für was anderseres.
Wenn du den ADC mit IRQ betreibst dann sogar wesentlich mehr da der ja die größte Zeit alleine läuft.


So und nun zum Praktischen Problemchen.
Und das Problem ist ja das Bascom den einfachsten Weg geht und nach dem Starten der Abfrage einfach wie nen Engländer am Busstop steht bis die Wandlung beendet ist.
Dazwischen passiert rein garnichts.

Für den Normalfall wenn einer alle Sekunde mal nen Kanal abfragt fällt das garnicht auf.
Auch einen Kanal 10x oder alle 8 jeweils 1x die Sekunde ist gut zu managen aber bei deinen 5000 bzw. 4000 Messungen/s ist dann schnell ende.
Das ist in Assembler schon nicht mehr so unbeachtet zu erledigen.(Weißt schon was ich meine)

Vieleicht wäre hier ein Mix aus Bascom und Assembler ne gute Idee.
Verleg einfach die AD-Wandlung manuell aus dann kannste den ADC-Int nutzen.
Einige µs Zeit sollten dabei schon rausspringen und der Code wird nur auf dem Papier größer.(Müßte eher kleiner werden denn du gibst ja schon genau vor)

Rein in Bascom gehts natürlich auch.

Äh,ja.
Ich hoff du kannst jetzt mit dem geschreibsel da oben was anfangen.
Is etwas wirr geworden.