Gast
#2827456
Guten Tag alle miteinander. Folgendes Szenario: - Am ICP1 liegt eine bestimmte extern gesteuerte Frequenz an. - TIMER1_CAPT_vect wird bei jeder einkommenden Flanke ausgelöst und zählt jedes Mal einen Counter hoch. - Der zweite Timer löst nach einer gewissen Zeit TIMER2_COMPA_vect aus, Interrupts werden dann kurz blockiert, mit dem Counter-Wert Berechnungen gemacht und auf einem angeschlossenen LCD-Display angezeigt. Zunächst will ich mir nur die Frequenz anzeigen lassen, die am ICP1 anliegt. Da ich diese mit einem Frequenzgenerator erzeuge, habe ich einen genauen Vergleichswert. Jetzt kommt mein Problem: Bis ca. 25 kHz funktioniert alles wie gewünscht, alles darüber aber nicht mehr, da TIMER1_CAPT_vect beim Hochzählen des Counters anscheinend schlichtweg nicht mehr hinterherkommt... Ich müsste aber in der Lage sein, Frequenzen bis 100 kHz messen zu können. Ich benutze einen Atmega168 und habe den Code in C gecchrieben (mit Ateml Studio 6). Hat jemand generell eine Idee, wie ich das Problem lösen könnte? Assembler (was ich leider nicht sonderlich gut kann) statt C? Anderen Chip?