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


von martin (Gast)


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

von johnny.m (Gast)


Lesenswert?

Du musst das ACIC-Bit im ACSR setzen...

von martin (Gast)


Angehängte Dateien:

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?

von johnny.m (Gast)


Lesenswert?

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

von martin (Gast)


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!

von johnny.m (Gast)


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.

von johnny.m (Gast)


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)...

von martin (Gast)


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!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.