mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik MinutenTimer mit dem Mega8


Autor: Smart (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,

ich wollte mich mal erkundigen, ob es möglich ist mit dem Mega8 einen 
Minutentimer mittels overflow interrupt zu realisieren. Immer wenn der 
Interrupt auftritt, also der Zähler übergelaufen ist, dann erhöhe ich 
eine Variable? Im Grunde sollte dies kein Problem sein, allerdings würde 
ich gern erfahren welcher Formel der Timer gehorcht. F_CPU/2*pre*8bit = 
Interruptfrequ??? kann mir das jemand bestätigen, oder mich eines 
besseren belehren?
Vielen Dank für eure Mühe
Schönen Abend noch
Smart

Autor: Datenblatt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Datenblatt und/oder
http://www.mikrocontroller.net/articles/AVR-Tutorial:_Timer

Woher soll die "2" in "F_CPU/2*pre*8bit" kommen? Wenn Du dich auf das 
Tutorial beziehst (bzw. auf das "Blinken" einer LED) kommt die "2" 
dadurch zustande, das jeweils zwischen zwei Zuständen gewechselt wird. 
Die eigentliche Timer-Frequenz ist aber F_CPU/(256*pre).

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
direkt als Minutentimer ist schwierig (wenn überhaupt, habs nicht 
durchgerechnet) und wenn überhaupt nur bei wenigen Quarzfrequenzen 
möglich.
Und vor allem: gar nicht nötig!
Bau die einen 1ms-(oder auch 5 oder 10 oder 20, egal)Interrupt.
In der ISR zählst du eine Variable hoch, die dir dann deine Minuten 
liefert.

timer_int {   //1ms
static unsigned int ms_count=0;
ms_count++;
if (ms_count >=60000)
   {minuten_tic=1;
    ms_count=0;
    }
.
.
}
Und im Hauptprogramm fragst du minuten_tic ab, wenn 1 ist eine Minute 
um.

Autor: Joachim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Genau, auf ähnliche weise hab ich mal eine Stoppuhr gebaut, die bis 
99,9999 Sekunden läuft. Aber die funktionsweise ist ja die, wie ober 
beschrieben. Meine kleinst Zeiteinheit ist 100µs. Und alle weiteren 
Schritte werden nur durch das Hochzählen von Variablen erreicht.

Kannst ja mal in der Codesammlung gucken, da ist das drin. Bin bei 
weitem kein begnadeter Programmierer, aber das Teil lief einwandfrei.

Autor: Michael H* (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ums genau hinzukriegen, wirst du um einen compare match interrupt oder 
einen uhrenquarz nicht drum rumkommen.
hilfreich: AVR - Die genaue Sekunde / RTC

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.