www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik mega8 timer1 interrupt mit komparator verknüpfen


Autor: martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen!
ich beschäfftige mich seit zwei tagen mit dem mega8 in assembler.
um auch gleich beim lernen etwas "sinnvolles" zu vollbringen, will ich 
den µC eine frequenz messen lassen und diese dann ausgeben lassen.

mein ansatz ist, dass ich ein gleichgerichtetes signal über den 
komparator führe, der dann bei einer steigenden flanke den capture 
interrupt auslöst und den zählerwert sichert. aus der differenz der 
beiden werte würde ich dann die frequenz berechnen können.

der 16 bit zähler läuft schon und ich habe auch schon den komparator 
interrupt und den zähler interrupt einzeln zum laufen bekommen aber wie 
verknüpfe ich den komparator mit dem 16bit zähler, dass der den wert 
sofort sichert. welche bits muss ich wo setzen. habe die betreffenden 
seiten in der "bedienungsanleitung" des mega8 (seite 72 bis 101) schon 
mehrmals gelesen komme aber irgendwie  nicht drauf.
Dass es gehen muss, steht ja öffters in der "bedienungsanleitung"...

vielen dank schon mal an alle die mir antworten!
schönen tag noch!
martin

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du musst das ACIC-Bit im ACSR setzen...

Autor: martin (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
danke für die schnelle antwort!
hab ACSR gesetzt aber mit gleichem ergebnis...
im anhang ist mal mein bisher geschriebenes. vielleicht fällt dir ja 
noch etwas auf.
wenn der interrupt kommt, dann wird doch das zählerergebnis TCNT1H und 
TCNT1L in ICR1H und ICR1L geschrieben. von dort aus kann ich dann die 
werte ganz normal weiter verabeiten, oder?

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn Du das Ergebnis gar nicht auswertest, dann kann natürlich nichts 
rauskommen. Du musst das ICR1 schon lesen...

Autor: martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
um es lesen zu können muss doch erst mal was in ICR1 drin stehen, oder?
bei der simulation, wird dort aber nichts reingeschrieben.
wenn dort erst mal was drin steht dann kann ichs natürlich auswerten.
mach ich nen denkfehler?
werd mir erst nochmal die dazugehörigen passagen durchlesen. irgendwo 
wird ja wohl was stehen...
danke nochmal!

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie simulierst Du überhaupt mit dem Komparator? Setzt Du das ACO von 
Hand? Solange kein Pegelwechsel am ACO auftritt, passiert natürlich auch 
beim Capture nichts.

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn Du übrigens gleich gesagt hättest, dass Du das alles nur simulierst 
und nicht in HW testest, dann hätte ich Dir wiederum auch gleich sagen 
können, dass der Simulator den Komparator gar nicht unterstützt (genau 
wie den ADC)...

Autor: martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
genau so hab ichs gemacht, per hand...
sorry, aber beschäftige mich eben erst seit zwei tagen mit der ganzen 
materie...
aber bin schon wieder nen wenig schlauer!

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.