Forum: Mikrocontroller und Digitale Elektronik 30s für 255Zählschritte


von Andreas (Gast)


Lesenswert?

Mal noch was:

Sehe ich das richtig:

Beim ATtiny26 kann man im Timer den Teiler bis auf 16384 hochsetzen.
(CS10-13 = 1)
Um für den Compare Match, also für max. 255 Schritte, 30 s zu
benötigen, bräuchte einen Systemtakt von rund 140kHz.
30s/255 macht 0,117s pro Schritt, sind 8,5Hz, mal 16384 ergibt rund
140kHz.
Oder wie kann man sonst von 4MHz Takt (XTAL1,2) auf die 30s kommen?
Ich glaube, ich steh' da auf'm Schlauch und kapiere vielleicht etwas
nicht!

Gruß,
Andreas

von dave (Gast)


Lesenswert?

Wie wärs, wenn du deinen Timer einfach mit einem Register erweiterst?
In jedem Timer-ISR zählst du das Register höher, und schaust, ob es
gleich deinem Wert (der für 30sek) entspricht.

dave

von Jürgen Berger (Gast)


Lesenswert?

Hallo,
nur mit dem Timer kommst du nicht auf 30s.
du könntest mit dem Timer Overflow arbeiten und dann in der
ausgelösten Interrupt Routine jeweils ein Register icrementieren.

Jürgen

von Andreas (Gast)


Lesenswert?

Also:
Ein AD-Wandler setzt mir eine der gewünschten Verzögerung proportionale
Spannung in 8bit um.
Dieser Wert wird ins Vergleichsregister des Timers geschoben.
Wenn der Timer den Wert erreicht hat, startet ein Programm.
Nur, der AD-Wandler kann max. bis 255 Schritte (8bit).
Wenn ich den Timer zählen lasse, bis er bei 4MHz/16384 bei 30s.
ankommt, dann brauche ich 117188 Schritte.
Problem klar?

von Peter D. (peda)


Lesenswert?

"Problem klar?"

Doch schon lange.

Du must aber auch die Antworten lesen.


Peter

von dave (Gast)


Lesenswert?

Da hat Peter kräftig recht ;)

Du willst also 30sek in 256 Schritten regeln.
Anfangs dein Zählregister = 0.

Wenn ich mich nicht verrechnet habe... musst du jetzt einfach
den 16384er Prescaler nehmen
das OCR auf 29 stellen
in der ISR ein 8bit Register hochzählen. Immer vergleichen mit AD-Wert.
Wenn das gleich ist, Register löschen und deine Verzögerung beenden.

dave

[ ] Häckchen, wenn gelesen.

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
Noch kein Account? Hier anmelden.