www.mikrocontroller.net

Forum: Codesammlung Timer für Anfänger in Assembler und C

Autor: Axel Jeromin (Gast)
Datum:
Angehängte Dateien:

Einfaches Beispiel für einen Timer der alle 50ms (49,92ms um genau zu
sein) ein Register decrementiert.

Grüße Axel
Autor: Axel Jeromin (Gast)
Datum:
Angehängte Dateien:

Einfaches Beispiel für einen Timer der alle 50ms (49,92ms um genau zu
sein) ein Register decrementiert. Hier das C Programm.

Grüße Axel
Autor: Thomas H. (Gast)
Datum:

Hallo Axel,

sehe ich das recht, dass die Zeit genau dann anfaengt zu laufen, wenn
die Zeilen

ldi temp, 61
out TCNT0, temp

durchlaufen wurden und es danach weiter geht mit den Befehlen nach out
TCNT0, temp?

Ich habe auch etwas von zwei externen Interrupts gehoert. Kann ich dann
mit deinem Programm auch 2 Zeiten stoppen, die dadurch entstehen, dass
INT0 und INT1 von 0 auf 1 bzw. umgekeht springen?

Ich habe Bits, die abwechselnd zwischen 1 und 0 springen und ich moechte
die Dauer zwischen den Wechseln messen. Dein Programm muesste hierfuer
doch eine gute Grundlage sein.

Weisst du, wie ich dort die externen Interrupts einbaue bzw. dann den
Zeitwert auslesen kann?

Tschau und vielen Dank,

Thomas H.
Autor: axel.jeromin@gmx.de (Gast)
Datum:
Angehängte Dateien:

Hallo Thomas,
entschuldige die lange Pause. Habe leider nicht ins Forum geschaut.

Du kannst die Anzahl der Interrupts pro Zeit zählen oder die Anzahl der
Timerinterrupts zwischen den Flanken an den Eingängen.

Anbei ein Programm zur Messung von Flanken pro Zeit. Es ist in C aber
recht einfach zu verstehen.

Grüße Axel
Autor: Uwe Ortmann (schwede)
Datum:

Hallo...
Wenn ich meinen mega8 mit 16 MHz takte, wie gross ist die max. Zeit im
16-bit-Timer?
Ich möchte meine Programm-Schleife (in Assembler) alle 30 min
ausführen. Sind solche grossen Zeiten überhaupt möglich?


Gruss Uwe
Autor: neuer (Gast)
Datum:

ein anfänger kennt die begriffe "outp" nicht mehr.
du arbeitest mit einer alten version. auch die timerbegriffe haben sich
geändert im namen.

ein anfänger lädt immer das aktuelle winavr-c runter.

neuer
Autor: Momo Momo (mylove-mylove)
Datum:

hallo und guten tag alle zusammen.

ich komme direkt aufm punkt.
seit eine woche arbeite ich an AVR STK525 AT90USB1287 (verbindung über
JTAGICE mkll) und will den timer einstellen aber ich bekomme es einfach
nicht hin!!!

ich habe früher mit infinion c515c gearbeiten und hab den timer so
inistiallisiert dass ich es selber die zeit einfach x-beliebig eingeben
konnte,

infinion c515c timerinit:
void warte_k_s(unsigned char k)    // Funktion für k + 1 s wait
{

unsigned int uz = 0;      // Überlaufzähler
uz = 0
TMOD = TMOD & 0xF0;  /* Timer Modus für Timer 0: Gate = 0,
                                       C/T = 0(hF0 = 240'd')*/
TMOD = TMOD | 0x01;  // Modus = 1, d.h. 16-Bit-Timer  (h01 = 1'd')

for (uz=0; uz<k*100; uz++)  /* for-Schleife bis 100 + 10 ms = 1 s */
  {
  TL0 = 0xE5;  /* 16 Bit Zähler mit BEE5h = 48869d vorbelegen */
  TH0 = 0xBE;  /* Zähler läuft damit 10 ms */
  TF0 = 0;  /* Überlauf zurücksetzen */
  TR0 = 1;  /* Timer starten */
  while (TF0 == 0);  /* Warten bis Überlauf */
  TR0 = 0;    /* Timer stoppen */
  }
}

jetzt brauche ich sowas ähnliches bei dem AVR STK525 AT90USB1287.
bitte kann mir jemand helfen?
ich bedanke mich schon im vorraus.

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




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 erkennst du die Nutzungsbedingungen an.

webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net