
Zitat von
Sisor
Falls ein Fehler vorliegt, wo finde ich ihn schneller?
Der Fehler ist doch schon gemacht.
Wo stelle ich beim Arduino die SampleRate ein? Und was bleibt ohne ISR von der Rechenzeit übrig, wenn ich auf allen 8 Kanälen fullspeed nacheinander messen will? Wie werde ich den Jitter los, der zweifellos bei dieser synchronen Pollgeschichte auftritt, wenn ich auch nur ein einziges "if" bei der Datenauswertung verwende?
Ich will das jetzt nicht gänzlich verreißen, aber die ADC-Geschichte nach Arduino Referenz (siehe AnalogRead) ist für mich ein typisches Beispiel. Bei der Verwendung aller 8 Kanäle bekommt man mit der ISR und 16MHz eine Taskscheibe von etwa 1000 Befehlzyklen zum Bearbeiten der Werte und Umsetzen des ADMux.
Mit Arduino bekommt man statt knapp 2kHz noch 1,25kHz SampleRate und damit ist auch gleich die komplette Rechenzeit weg.
Schon das Beispiel aus der Referenz
Code:
void loop() {
val = analogRead(analogPin); // read the input pin
Serial.println(val); // debug value
}
kann doch nicht jitterfrei laufen.
Lesezeichen