mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Timer, nur ein Durchlauf


Autor: Martin Schwerter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!
Nach meinen bisherigen Recherchen hier wird der Timer ja folgendermaßen
benutzt: Er zählt hoch bis 0xFF, und dann gibs einen Overflow und das
Spiel geht von neuem los. Die Overflows werden irgendwo dann ja im
Programm benutzt und dann hat man ja eine bestimmte Anzahl
Overflows=Timerdurchgänge.

Ich möchte den Timer allerdings nur folgendermaßen nutzten:
Der Timer wird gestartet, fängt an zu Zählen, und wenig später schaue
ich quasie herein, bis wie weit der gezählt hat. Geht das irgendwie?
Mein Gedanke dazu war der, dass der Timer einfach durch das Setzen des
Teilers gestartet wird und ich wenig später halt den Wert aus dem
entsprechenden Register herauslese (bin leider gerade nicht zu Hause,
sonst hätte ich auch sagen können wie das heißt, aber ich glaube ihr
wisst was ich meine...).
Das hat aber irgendwie nicht recht funtioniert, oder ich habe mich
verrechnet.

Konkret handelt es sich um einen Atmega8 mit 16MHZ (durch
Quarzoszillator), das Programm soll folgendes machen:

Empfänger für den RC-Modellbau geben ja ein Signal von 1-2ms aus, das
die Lage eines Servos beschreibt. Dazwischen sind 20ms Low-Pegel.

Ein Interruot wird ausgelöst, wenn am Interrupt-Eingang der Pegel
hochgeht, d.h. der 1-2ms-Impuls beginnt. Der Interruot wird nun
umgestellt, sodas  er durch Pegelabfall ausgelöst wird. Dann soll ein
Timer, so wie oben beschrieben, die Zeit merken, bis der weitere
Interrupt durch den Pegelabfall ausgelöst wird. Dieser Wert kann dann
entsprechend verarbeitet werden.

Nun, wie gesagt, ich habe es oben mal ausprobiert wie beschrieben, aber
es klappte nicht. Der Teiler war 256 und ich hatte mir dadurch einen
Timer-Wert zwischen 62 und 125 versprochen.

Also alles andere (die Interruotgeschichte usw) scheint nach meinen
Tests zu klappen, nur nicht die Sache mit dem Timer.
Hat vielleicht jemand eine Idee dazu?
Vielen Dank schonmal,
Martin

Autor: inoffizieller WM-Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guck dir mal die Funktion der InterruptCapture (ICP).
Pulsdauern misst man damit aus.
Und wenn du "Modellbau" an die Forensuchfunktion übergibst, müsstest
du auch Lösungen finden...

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.