www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik At Mega8 Timer 1


Autor: Oliver D. (smasher)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich wollte fragen, ob es möglich ist, den Timer 1 eines AT Mega8 bei 
erkennen einer negativen Flanke zu starten und bei einer darauffolgenden 
positiven Flanke anzuhalten.

Den erhaltenen Wert möchte ich dann weiter verarbeiten.


Kann mir vielleicht jemand sagen, wie man diesen Betriebsmodus nennt, 
und wa sich mir im Datenblatt dazu durchlesen muss?

Bisher hatte ich nur 8051er und da ist es bei weitem nicht so "komplex" 
wie beim AVR und seinen vielen einstellmöglichkeiten.
Desweiteren gab es glaube ich beim 8051er sowas garnicht.

Bin mir nicht so sicher.


Für Tipps oder vielleicht ein Tutorial bei dem genau auf solche 
Sachverhalte, wie z.B. Zeitmessung eines Signals eingegangen wird, währe 
ich sehr dankbar.
Ich versuche nämlich den Zeitabstand zwischen negativer und positiver 
flanke zu messen.



Danke.

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Starten und Anhalten geht nicht (außer in Software). Mit Input Capture 
kann man bei Auftreten eines Ereignisses den aktuellen Zählerstand 
sichern. Wenn man das zweimal macht, kann man die Differenz bilden und 
den Abstand der Ereignisse ermitteln. Der Timer läuft dabei aber durch.

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oliver D. wrote:
> Bisher hatte ich nur 8051er und da ist es bei weitem nicht so "komplex"
> wie beim AVR und seinen vielen einstellmöglichkeiten.
> Desweiteren gab es glaube ich beim 8051er sowas garnicht.
Erstmal gibt es den 8051er gar nicht, und zweitens kenne ich einige 
8051-Derivate, die durchaus komplexer sind (mehr Peripherie haben) als 
ein ATMega8, der sicher zum "unteren Ende" der AVR-Skala zählt... Der 
80C517/537 hat z.B. afair auch Input Capture...

Autor: Oliver D. (smasher)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm und was ist für einen Anfänger eine geeignete Methode?

Autor: Oliver D. (smasher)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eigentlich geht es um die Auswertung von DCF. Bevor ich irgendwo 
nachlese, will ich es selbst versuchen.

Eigentlich gibt es ja nur 2 zeiten zu messen.
Wenn ich also den Timer bei fallender Flanke starte und 105ms lang 
laufen lassen und dann durch compare wert stoppe und direkt danach 
schaue ob noch eine logische 0 oder 1 anliegt, hätte ich meine Zeit ja 
quasi "gemessen"
Wenn nach 105ms noch eine 0 anliegt, ist es für mein programm eine 1 und 
wenn nach 105ms wieder eine 1 anliegt, ist es für mein programm eine 0.

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK, bei den Zeiten kann man es fast besser in Software machen. Da kommt 
es auch nicht so auf absolute Genauigkeit an, dass man es unbedingt 
mit Input Capture machen müsste. Ein paar 10 Taktzyklen Overhead durch 
einen Interrupt Handler (externer Interrupt) sollten da kein Problem 
darstellen.

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.