Hi, ich möchte einen kleinen, batteriebetriebenen Sekunden-Timer bauen, der gelegentlich auch mal piept (2.4kHz Rechteck heisst mit 4.8KHz toggeln). Ich möchte einen tiny13 benutzen. Ich programmiere in C. Für Tondauer und zur Entprellung bräuchte ich auch einen Timer-Interrupt in der Größenordnung 10ms. Für einen genauen Sekundentakt soll ein Quarz verwendet werden. Da ausser ein paar Softwaretimern praktisch nix gerechnet wird, suche ich den kleinstmöglichen Takt. Reicht da auch ein Uhrenquarz?
Hi, im datenblatt steht nix von Uhrenquarz oder low-frequency oscillator - geht es also nicht?
Da ein Tiny13 keinen direkten Quarzanschluss unterstützt, müsstest du einen externen 32KHz-Oszillator bauen. Das geht zwar, aber da es auch 8bit-Tinys mit direktem Quarzanschluss gibt (z.B. Tiny25, auch Uhrenquarz), erscheint mir das nicht wirklich sinnvoll. Die 2,4KHz kriegt man bei dieser Quarzfrequenz allerdings nicht genau hin.
Hoppla, ich bin davon ausgegangen, dass alle auch einen Quarz vertragen. Dann wird es ein tiny25. Danke für das Augenöffnen!
Beim entprellen setze ich auf eine Hard/Soft-Kombination. Ich würde es mit einem RC Tiefpass und dem hier machen. http://www.mikrocontroller.net/articles/Entprellung/
Es gibt eine zum Thema passende AN: AVR055: Using a 32kHz XTAL for run-time calibration of the internal RC Allerdings verstehe ich nicht, wo die den Quarz anschließen. Aber: Wenn 32kHz als Takt für meine Anwendung reichen, wäre ich höchstzufrieden! Ich vermute es geht, was meint ihr?
>Wenn 32kHz als Takt für meine Anwendung reichen, wäre ich >höchstzufrieden! Ich vermute es geht, was meint ihr? Das hängt von den genauen Aufgaben ab, die Deine Applikation bewältigen soll. Bei 32 kHz und 10 ms Updateintervall stehen Dir nach Adam Riese 320 Taktzyklen fürs Rechnen zur Verfügung. Das ist nicht umwerfend viel. Aber wenn Du z. B. alle Variablen in Registern halten kannst (d. h. ohne den SRAM auskommst) und Deinen Code clever proggst... - probiers doch einfach aus.
Martin wrote:
> Allerdings verstehe ich nicht, wo die den Quarz anschließen.
Damit sind die grösseren Kollegen gemeint, Mega8 aufwärts, bei denen
einer der Timer mit eigenem Quarz als RTC arbeiten kann.
AVRFan wrote: > soll. Bei 32 kHz und 10 ms Updateintervall stehen Dir nach Adam Riese > 320 Taktzyklen fürs Rechnen zur Verfügung. Der Entprellinterrupt muß nichts rechnen (nur etwas AND und OR), das paßt schon. Den Rest macht man in der Mainloop. Und den Ton mit dem 2. Timer (PWM oder Pin-Toggle). Peter
Ah, sehr schön, danke für die Bestätigung. Ich probier das mal.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.