.........Bild hier
Zitat von wkrug
Hallo Jeti,Zitat von Jeti
in Deinem Programm nutzt Du nur den Interrupt, den die Interrupt Capture Funktion zur Verfügung stellt. Das Gleiche könntest Du auch mit den INt0, INT1 oder INT2 Interrupts erreichen. Die schöne Funktion, die die Input Capture Funktion noch zur Verfügung stellt, ist, daß bei dem Capture event nicht nur das Interrupt Flag gesetzt wird, sondern auch gleichzeitig der Timerstand in das ICR1H/ICR1L Register kopiert wird.
Wenn der Timer1 nun zB mit 1MHz laufen würde, bei steigender Flanke der Input Capture zuschlägt und man dann ICR1H/ICR1L sichert, auf fallende Flanke umschaltet und beim nächsten Input Capture den gesicherten Wert mit dem neuen aktuellen ICR1H/ICR1L Wert verrechnet, hat man eine Auflösung von 1µs.
Außerdem sollte man die ISR so kurz wie möglich halten. Die Anzeigefunktion also irgendwie in die main plazieren.
Gruß
Searcher
Lesezeichen