>Das problem hierbei ist für mich: bei der Anzahl der Messwerte muss ich
>schon auf den SRAM zurückgreifen ... was 1. Zeitintensiv ist, viel
>Speicerplatz im Code benötigt und eventuelle sprünge nicht mehr
>realisierbar macht (RJMP).
Hast Du denn einfach alles mal sauber durchgerechnet? Taktfrequenz des
Controllers, RAM-Größe, Anzahl der ADC-Kanäle, gewünschte
Aktualisierungsrate, Mittelung über soundsoviele Werte... aus diesen
Daten sollte sich doch eine brauchbare Vorhersage kalkulieren lassen, ob
Dein Controller die gewünschten Anforderungen bewältigen kann.
Speicherplatz im Code? Das ist doch nur ein Problem, wenn Du den Platz
anderweitig benötigst, oder kein Controller mit mehr Platz verfügbar
ist. Ansonsten: Benutzen und fertig.
Zeitintensiv? Solange der Controller mit seiner Arbeit rumkommt, ist es
egal, ob er 10 % oder 90 % der Zeit ausgelastet ist.
Einen Codeabschnitt, der 100 Taktzyklen benötigt, kann ein mit 8 MHz
getakteter Controller theoretisch 80000 mal pro Sekunde ausführen. Ich
finde, das ist eine ganze Menge. Angenommen, Dein Codeabschnitt zur
Mittelwertbildung verschlingt 1000 Zyklen, muss 6 mal ausgeführt werden
muss (6 Kanäle), und Deine Aktualisierungsrate ist 50/s - wie groß ist
die dadurch verursachte Prozessorlast bei 8 MHz Taktfrequenz? Richtige
Antwort: Nur 3.75 %.
>Damit komme ich auf 12 Register allein für die Messwerte.
Wenns mit Registern eng wird, kann man sie auf dem Stack zwischenlagern
(push/pop).
>Allein das holen der Messwerte und abschließende Abspeichern kostet 8
>Cycles
8 Instruktionen meinst Du. Cycles sinds ein paar mehr.