www.mikrocontroller.net

Forum: Projekte & Code Timer für Anfänger in Assembler und C


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

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

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

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

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

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

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

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