Beim Arduino / ATmega328p verfügen die 16-Bit-Timer / PWM-Module über eine Eingangserfassungseinheit, mit der die genaue Ankunftszeit für eine Eingangsflanke aufgezeichnet werden kann, selbst wenn der Prozessor beschäftigt ist, wenn die Eingangsflanke eintrifft. (Einzelheiten finden Sie im Datenblatt , Abschnitt 20.9 auf Seite 155.)
Verfügt der Raspberry Pi über ein vergleichbares Hardware-Peripheriegerät oder eine andere Möglichkeit, eine Eingangsflanke, die auftritt, während der Prozessor ausgelastet ist, präzise mit einem Zeitstempel zu versehen? Ich habe versucht, das Datenblatt für BCM2835 ARM-Peripheriegeräte zu durchsuchen , konnte jedoch bisher nichts finden, das meinen Anforderungen entspricht.
Ich würde annehmen, dass dies erreicht werden könnte, indem der FIQ verwendet wird, um einen DMA vom System-Timer zu einem anderen Ort auszulösen, aber aus den Registerdokumenten scheint es, dass der FIQ nur für GPU- und Basis-Interrupts eingerichtet werden kann. Ich bin mir nicht sicher, wie ich den FIQ bei GPIO-Interrupts auslösen soll, und selbst wenn ich wüsste, wie, bin ich mir nicht sicher, ob dies eine korrekte Vorgehensweise ist oder ob es eine andere Möglichkeit gibt, dies sauberer zu tun.
Wie kann ich die Ankunftszeit einer Eingangsflanke genau erfassen?
Eine kleine konstante Verzögerung ist kein Problem, da ich sie einfach wieder herausziehen kann, aber für meine Anwendung benötige ich mindestens eine Mikrosekundengenauigkeit oder besser.