Hallo,
heute ist zur erweiterung meines Projektes der Due gekommen.
Es sieht wie folgt aus. Auf einen Puls wird ein Timestamp gesetzt, ab da an wird gemessen wann der ISR auslöst. Das ganze passiert im uS Bereich. Nach 5 Werten soll von diesen Werten ein Mittelwert gebildet werden. Das klappt bei einem ganz gut, allerdings sieht das bei 5 Sensoren wirklch schrecklich aus, wenn jeder seine eigene Funktion mit selben Inhalt, nur anderer Variable bekommt.
Als Lösung dachte ich, das in der ISR Routine ich in eine Variable speicher welche den Wert des Interrupts beinhaltet, allerdings würde das Programm nicht zur Berechnung kommen, da kurz darauf der nächste Interrupt auslöst und diese Variable überschreibt. Im schlimmsten Fall könnte zwischen den ISR 1-4uS nur liegen.
Eine Möglichkeit die ich noch überlegt habe ist, da die Zeitwerte bis zum eintreffen der Flanke in einem Array gespeichert werden, diese erst später zu errechnen. Zwischen den Flanken liegen etwa 300ms. Das sollte eigentlich reichen die Werte zu errechnen. Allerdings habe ich das noch nicht getestet. Ich würde mich gerne von euch noch inspirieren lassen.
Gibt es eine elegante Variante, sonst müsste ich wirklich einen Aufgeblähten Code benutzen.
Liebe Grüße