Hallo,
ich möchte folgendes mit Hilfe zweier ATmega32M1 realisieren:
Controller 1 erzeugt immer wieder drei Impulse die den gleichen
zeitlichen Abstand haben.
Diese Impulse "sieht" Controller 2 am "Input Capture Pin".
Controller 2 soll nun Anhand der gemessenen Abstände der Impulse die
Zeitbasis des Controllers 1 erkennen und seinerseits Impulse in einem
definierten Abstand zum vorherigen Impuls erzeugen.
Andert sich die Taktfrequenz eines Controllers soll es trotzdem für
Controller 1 so aussehen, als würden die Impulse con Controller 2 immer
zum gleichen Zeitpunkt kommen.
_|__|__|________|__|__|______ ... C1
__|__|__|________|__|__|______ ... C2
Habt Ihr eine Idee wie ich es am Besten schaffe?
Kann ich den Timer so konfgurieren, daß er "automatisch" den Impuls
erzeugt?
Vielen Dank!
Simon
> Controller 1 erzeugt Impulse> Andert sich die Taktfrequenz ... soll es trotzdem für> Controller 1 so aussehen
Verstehe ich nicht. Wer ist hier der Sender und wer ist der Empfänger?
Was ist mit den Pulsbreiten, sind die völlig egal?
> Impulse von Controller 2 immer zum gleichen Zeitpunkt kommen.
Was genau meinst du mit "gleichem Zeitpunkt"?
> Kann ich den Timer so konfgurieren, daß> er "automatisch" den Impuls erzeugt?
Wer ist "der Impuls?" Timer erzugen regelmäßige Impulse, unabhängig
davon, was ein anderer Timer oder µC macht.
Simon schrieb:> Andert sich die Taktfrequenz eines Controllers soll es trotzdem für> Controller 1 so aussehen, als würden die Impulse con Controller 2 immer> zum gleichen Zeitpunkt kommen.
versteh ich nicht. Controller 1 erzeugt doch die Impulse - wie soll er
da etwas "sehen"?
Route 6. schrieb:> Impuls mit welcher Länge und welchem Abstand?
Die Impulse selbst sind ca. 5µs lang, der Abstand ist ca. 60µs.
> Warum zwei AtMega32?
Die Megas werden in größerem Abstand gebraucht und machen noch eine
ganze Menge mehr.
Stefan U. schrieb:>> Verstehe ich nicht. Wer ist hier der Sender und wer ist der Empfänger?> Was ist mit den Pulsbreiten, sind die völlig egal?
Beide senden und beide Empfangen C1 elektrisch, C2 optisch.
> Was genau meinst du mit "gleichem Zeitpunkt"?
Gemeint ist der Abstand zum vorherigen Impuls
_______|______|_____|_________________ C1
___________|______|_____|_____________ C2
|-t-| |-t-| |-t-|
> Wer ist "der Impuls?" Timer erzugen regelmäßige Impulse, unabhängig> davon, was ein anderer Timer oder µC macht.
der Impuls von C2
Peter II schrieb:> versteh ich nicht. Controller 1 erzeugt doch die Impulse - wie soll er> da etwas "sehen"?
Beide senden und beide Empfangen C1 sendet elektrisch, C2 sendet
optisch.
Stefan U. schrieb:> Lies dich mal ein, wie lange das Aufrufen einer ISR dauert.
3-4 Takte + 2 Takte Sprung als 6Takte. Bei 16Mhz sind das 0,4ns wo
siehst du da sein Problem?
Stefan U. schrieb:> Dann sind Mikrocontroller in der AVR Klasse die falsche Wahl, da zu> langsam.>> Lies dich mal ein, wie lange das Aufrufen einer ISR dauert.
Impulse kann ich problemlos erzeugen, wenn ich polle kann ich auch
einigermaßen exakt die Impulse von C2 erzeugen.
Ich habe aber gehofft, daß es mit Hilde des Timers genauer geht.
> Bei 16Mhz sind das 0,4µs wo siehst du da sein Problem?
Die Impulse sind 5µS breit. Da alleine das Aufrufen der ISR schon 3-4
Takte dauert, werden die Zeiten vom Impuls-beginn und Ende schon
alleine dadurch deutlich verzerrt. Vor allem wird es schwierig, da die
Zeit nicht immer genau gleich ist.
Aber, wie genau es sein soll, hat er ja noch gar nicht gesagt. Ich war
voreilig.
Stefan U. schrieb:> Aber, wie genau es sein soll, hat er ja noch gar nicht gesagt. Ich war> voreilig.
Ich habe mir den Ablauf wie folgt vorgestellt:
- C1 erzeugt den ersten Impuls. (Länge ca. 5µs)
SP: - C2 speichert, dank Input Capture, den Timerwert und setzt
den Timer auf 0
- C2: Der Timer TOP Wert und der Wert des Timer Compare Registers wird
mit angenommenen Werten berechnet (Verzögerung ca. 12µs)
- C2: Beim Erreichen des Timer Compare Wertes wird der der Ausgang
auf High gesetzt
- C2: Beim Erreichen des TOP Wertes wird der Ausgang auf LOW gesetzt
- C1 erzeugt den zweiten Impuls (Länge ca. 5µs, etwa 60µs nach erstem
Impuls)
- goto SP
ich hoffe es ist jetzt verständlicher.
Vielen Dank für die rege Beteiligung.