mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Timerprogrammierung


Autor: Manuwar (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich verwende einen ATMega8535 und CodevisionAVR.

Um Impulse in einer bestimmten Zeit auszuwerten, möchte ich mit dem
Timer0 einen Sekundentakt erzeugen, weiss aber nicht wie die ganze
Rechnerei funktioniert um genau auf 1 Sekunde zu kommen!
Kann mir jemand helfen?
Danke Manuwar

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es wäre ein Anfang, wenn du die Taktfrequenz posten würdest ...
Ansonsten kann man je nach Verfügbarkeit mit einem
Timer-Overflow-Interrupt bzw. dem Compare-Match-Modus arbeiten.
Am besten wäre es, wenn du das Datenblatt erst einmal studierst und
vielleicht auch hier einen Blick in die Codesammlung wirfst, dort liegt
ein entsprechendes Projekt rum.

Gruss Alex

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mit dem Timer0 wirst du nie direkt auf 1 Sekunde kommen, selbst bei nur
1MHz Takt und Vorteiler 1024, max. Zählerstand 255 (8bit) kommst du nur
auf ~0,25s.
Also beispielsweise einen 10ms-Interrupt erzeugen und mit einer
(static)-Variablen bis 100 zählen.

Autor: Manuwar (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hier die vergessenene daten:

10 MHZ/1024 --> 9,766 KHz

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

du kannst den Timer1 im CTC-Modus dazu hernehmen. Vorteiler 1024, ins
OCR1x-Register 9765 schreiben und Compare-Match-INT aktivieren. Schon
hast du jede Sekunde deinen INT.

Bei so langsamen Frequenzen bevorzuge ich aber auch die Methode von
crazy horse. Also alle Millisekunde einen INT, in diesem dann eine
Variable hochzählen und beim Erreichen des gewünschten Wertes die
entsprechende Aktion ausführen. Dann kann man mit einem Timer nämlich
alle Vielfache von 1ms erschlagen.

Du wirst noch feststellen das man beim Programmieren von µC eigentlich
nie genug Timer haben kann. Insbesondere wenn man noch den ein oder
anderen PWM-Kanal nutzen möchte wirds schnell eng.

Matthias

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.