mikrocontroller.net

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


Autor: Andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: dave (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jürgen Berger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Problem klar?"

Doch schon lange.

Du must aber auch die Antworten lesen.


Peter

Autor: dave (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.