www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Taktisches Vorgehen PWM + Zeitmessung


Autor: Philipp Horenz. (phil_phil)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Freunde,

ich habe momentan das Problem, dass ich ein paar LEDs mit PWM ansteuere 
und nun gerne zeitgleich eine Zeitmessung vornehmen möchten. Leider weiß 
ich nicht genau wie das mit der Zeitmessung von statten geht. Ich habe 
mir das so gedacht das ich beim Atmega8 den TCCR0 für meine PWM nehme 
und den TCCR1 für die Zeitmessung. Leider weiß ich nicht was passiert 
wenn es zum Interrupt von TCCR0 kommt und er in die Anweisung geht und 
dann innerhalb dieser Anweisung nen Interrupt von TCCR1 kommt und er in 
die dortige Anweisung springt.

Wie löst man das Problem also am Besten? Bzw. gibt es irgendwo ne 
Übersicht wie man am Besten mit mehreren Timern arbeitet?

Dank' euch mal wieder.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>  eine Zeitmessung vornehmen möchten.
Um welche Zeiten handelt es sich? Eher 100 us oder eher 100 s?

Autor: Paul Baumann (paul_baumann)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn der Kollege gerade dabei ist, einen Interrupt zu bedienen, springt
er da nicht raus. Er bearbeitet ihn weiter und erst, wenn die Routine
vorbei ist, widmet er sich dem neuen Interrupt, der aufgetreten ist.

MfG Paul

Autor: Philipp Horenz. (phil_phil)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
na im Prinzip geht es nachher um ne Geschwindigkeit.. sagen wir mal.. 
bis 40km/h. Bei nem Abstand von ca. 10-20cm der jeweiligen Messpunkte 
wären das ca. 9ms.. wobei das wirklich das Schlaraffenland wäre und ich 
nicht sooo schnell sein müsst, aber wie gesagt. Wäre schön ;-)

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was heißt "wäre schön"?
Du arbeitest mit einem µC. Für den sind 9ms eine halbe Ewigkeit.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> TCCR0 für meine PWM nehme und den TCCR1 für die Zeitmessung
Für ISR gilt das Motto der 30er:
Fasse dich kurz! Nimm Rücksicht auf Wartende.
http://de.wikipedia.org/wiki/Fasse_dich_kurz!

In einer ISR sollte nichts Aufwendiges berechnet oder manipuliert 
werden. Dann ist die Ausführungszeit deiner PWM-Routine kurz, und du 
hast nur geringen Jitter. Angenommen, deine ISR dauert 50us, dann hast 
du eine maximal Messungenauigkeit von 0,05ms/90ms = 0,5%. das ist besser 
als der Tacho im Auto ;-)

Aber lass den Zeitmess-Timer einfach durchlaufen, und berechne die 
abgelaufene Zeit durch Differenzbildung mit dem alten Timerwert.

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.