Hallo, ich möchte gerne mit einem Mega8 eine Torzeitmessung vornehmen. Dabei möchte ich Ferquenz von 1KHz oder ca. 2Khz messen. Dazu sollte man ja mit einem Timer ein Torzeit generieren, und dann mit dem zweiten die Impulse "zählen". Ich habe dabei an eine Torzeit von 10ms gedacht, dann kann ich in einer Sekunde ca. 100 Auswertungen vornehmen. Bei 1ms fällt bei 1KHz ja nur noch ein Impuls an, das ist dann schon ein wenig ungenau.. ;-) Kann mir jemand Tipps dazu geben? Bin mit den AVR's noch nicht so vertraut. Habe aber inzwischen rausgefunden, dass ich auf alle Fälle die sc0,sc1,sc2 register setzen muss, für Externen Interrupt. Wie definiere ich dann die Torzeit und die Interrupt einsprung marken? Das ganze soll wenn es fertig ist zur Datenübertragung mit Handelsüblichen CB-Funk Geräten mit o.Ä. dienen. Generiere mit einem Mega8 schon die Töne und setze Sie auf der Empfangsseite am Seaker Ausgang des Funkgerätes mit einem OpAmp als Schmitt-Trigger wieder in "saubere" Rechteck Signale um. Wäre super, wenn mir jemand weiter helfen könnte baeri3
Hi! kanst du das nicht einfach so machen? Timer 0 mit prescaler 1/64 = Timer zählt alle 8µs um eins hoch. Timer bei steigender flanke starten und bei der nächsten steigenden flanke anhalten. Impulse auswerten usw.. die minimale freqenz wäre hier ca 500Hz. Ist halt die frage ob dir eine genauigkeit von 8µs ausreicht.. Gruß Matthias
Hallo! Weiss nicht ob ich dein Problem ganz verstanden hab. Aber ich denke, dass es auf diese Art am besten geht: Signale mit dem ICP1 interrupt zählen. Bei Auftritt des Interrupts wird der aktuelle Stand von Timer1 Counter ins ICR kopiert (das macht der atmega selbständig - somit ist das schrecklich genau weil keine Verzögerungen durch den Aufruf der INTERRUPT SERVICE ROUTINE auftreten). der ICR Wird abgelegt und beim nächsten auftritt des ICP1 Interrupts mit dem zuvor abgelegten Wert verglichen. Wird kein Teiler für Timer1 verwendet, so bekommst Du den Zeitunterschied zwischen den zwei Signalen ganz genau in den dazwischen erfolgten CPU-cycles. Genauer gehts nicht. Hoffe das hilft.
hmmm.. nen Code Schnipsel dazu hat niemand zufälliger weise rum fahren? .. 8µs auflosung würden mir schon reichen, und auch der zweite vorschlag, mit ca. 500Hz als min. Frequenz. wäre akzeptabel!
Hallo nochmal, habe nun endlich mal wieder ein wenig Zeit zum Basteln.. ;-) Leider komme ich mit den ganzen Bit's die ich da setzen sollte nicht ganz zurecht... Habt ihr evt. doch noch ein Code Schnipsel rumliegen? big thx
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.