Gast
#2811
Hallo AVR-Gemeinde, ich habe mal eine Frage zu dem 16-bit Timer. Und zwar möchte ich sehr präzise die Zeitverzögerung von einer Sekunde messen. Wenn ich meinem AVR nun einen Quarz von 4,096Mhz verpasse, kommt das ja bei einer Vorteilung von 1024 genau hin, wenn ich den Zähler dann noch 4000 Zyklen zählen lasse. Ich möchte das Programm allerdings interruptlos gestalten, weil dazu keine Notwendigkeit besteht und ich den Zähler mittels Polling abfragen will. Wenn ich das, was ich bislang an Informationen gesammelt habe, richtig interpretiere, sollte es auch ohne Interrupt möglich sein, den Timer1 durch Setzen des CTC1-Bits im Register TCRR1B so zu gestalten, dass er freilaufend immer dann auf Null zurücksetzt, wenn sein Zählerstand mit dem Vergleichsregister A übereinstimmt, ohne dass ich ihn immer wieder softwaregesteuert neu setzen muss. Ist das richtig? Ich könnte natürlich durch Schreiben von Beispielcode im AVR-Studio herumprobieren, aber das Debugging von Code mit solch langen Zählerverzögerungen gestaltet sich dort recht unkomfortabel und man kann ja auch mal jemand fragen, der Ahnung von diesen Geschichten hat. Vielleicht wären einige Zeilen Beispielcode in C nicht schlecht. Vielen Dank schon mal für die Beratung! Beste Grüsse, Notker