Das mag nicht so sein, daß ist so.Zitat von SprinterSB
Wer einen µC mit 1 MHz taktet, wenn er 100 kHz messen will, hat kein (programm)technisches Problem, sondern ein Verständnisproblem.Wenn man seinen AVR auf 1MHz getaktet hat, dürfte man IMHO arge Probleme bekommen, wenn man versucht, Frequenzen über 100kHz softwaremässig zu messen, wahrscheinlich sogar schon deutlich früher. Vor allem mit Basic.
Schneller als das direkte Aufaddieren der Impulse im Interrupt ist keine andere Methode. Die ISR besteht aus einem Befehl + return: INCR var.Flankendetektion über Polling und externe IRQs liefern zudem ein recht fehlerbehaftetes Ergebnis, vor allem erster Ansatz. Die Schleife dürfte nicht länger dauern als 10 Takte. Eine auf externe IRQ basierende ISR dürfte komplett nicht länger dauern als 6 Takte (4 Takte IRQ-Latenz). In beiden Fällen sind (andere) IRQs tabu.
Weil der Fragesteller erwähnte, er hätte die Timer gerne für andere Zwecke frei?Warum also sollte man die Möglichkeiten der Hardware nicht nutzen?
Ohne zu wissen, welcher Frequenzbereich denn nun tatsächlich erfasst werden soll, können nur alle Methoden aufgezeigt werden. Bei niedrigen Frequenzen <1 kHz ist die Periodendauermessung meist sinnvoll, darüber hinaus werden i.d.R. mit der Impulszählung die besseren Ergebnisse ezielt werden können.
Henrik
Lesezeichen