30s für 255Zählschritte

Gast #173492
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
Gast #173493
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
Gast #173494
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
Gast #173495
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?
Gast #173497
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 21 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.