mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Milliesekunden seit einem bestimmten Zeitpunkt messen


Autor: Alan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie ließe sich dies mit einem 8Bit Timer realisieren? Taktfrquenz: 4MHz

Autor: gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nimm doch den int eingang und schalte beim interrupt den timer an
näheres gibt im tutorial

Autor: Alan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nicht über nen Taster. Meinetwegen auch die Millisekunden seit den Reset 
messen.

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
8-bit Timer bei 4 MHz und 1 Millisekunden Auflösung ist eine schlechte 
Auswahl.

Die verschiedenen AVR-CALC Tools zur Berechnung günstiger 
Prescaler-Werte und TCNT-Reload-Werte spucken immer nur krumme Zahlen 
aus.

Rechnerisch genaue Millisekunden (ohne Beachtung der Quarzungenauigkeit) 
sind bei diesen Vorgaben mit dem 16-Bit Timer möglich.

Autor: Alan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und dieser ist schon mit der PWM-Steuerung beauftragt.

Autor: Daniel K. (Firma: zjevp) (daniel-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm, ich weiss jetz nicht welchen Controller du hast, aber zumindest die 
Atmega16 und -32 können an Timer2 auch mit einer externen Taktquelle 
betrieben werden.
Da könntest Du dann einen 1kHz Quarz dranhängen.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kann dein 8-bit-Timer denn CTC (clear timer on compare match) oder
sowas?

Was für ein Controller ist es überhaupt?

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wo ist denn das Problem, kannst Du das nicht ausrechnen?

Du mußt 4e6 * 1e-3 = 4000 Zyklen verbraten, z.B.:

Prescaler 1:8, Clear on Compare mit 249 und im Interrupt ne Variable bis 
2 zählen, fertisch.


Peter

Autor: Martin L. (melvin_the_moose)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was ist denn der "bestimmte Zeitpunkt"?

Externes Ereignis (Signalflanke): -> Input Capture (Int-Eingang geht 
nur, wenn das System ohne Interruptsperren betrieben wird, sonst geht 
eine unbekannte (?) Anzahl Zyklen verloren)

Internes Ereignis (Software setzt den Startzeitpunkt): -> Output Compare 
Interrupt

Wie genau muß die Messung sein?
Kann die Messung einige Prozent abweichen? Dann kann man den Prescaler- 
und OC-Wert evtl. einer anderen Aufgabe (PWM?) unterordnen.
Oder darf die Abweichung die Quarzungenauigkeit nicht übersteigen? Dann 
sind Prescaler und OC-Wert so zu wählen,  daß der OC-Interrupt eben 
exakt in 1/n ms (n ganz) periodisch zuschlägt, so daß durch zählen der 
Interrupts und Teilen durch n die Zeit in ms ermittelt werden kann.

Autor: Alan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es ist ein ATMega8.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alan wrote:

> Es ist ein ATMega8.

Dessen Timer 0 ist ziemlich blöd und kann kein CTC.  Timer 2 kann es
aber, damit könntest du einen Prescaler von 8 wählen und OCR2A auf
250 setzen.  Wenn du die zugehörigen Interrupts auswertest, hast du
mit jedem zweiten Interrupt einen Millisekundentakt.

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.