Erstmal Hallo allerseits. Habe da ein kleines Problem: Ich möchte bei jeder Flankenänderung zweier Eingangssignale einen kurzen Nadelpuls erzeugen. Hintergedanke ist den Nadelpuls zum triggern eines Input Capture Interrupts eines Atmel µC herzunehmen und dann "nachzusehen" welchen Level die Eingangssignale haben. Gibt es da etwas fertiges? Das ist die Lösung die ich bis jetzt erdacht habe: IN ------||---|\ + ____ | \____| | | / | | Vref---|/ - | | | | | >1 |------- µC IN ------||---|\ - | | | \____| | | / | | Vref---|/ + -------- Vref=2.5V 0V <= In <= 5V Nach den Kondensatoren kommt noch eine Diode zur Begrenzung der negativen (positiven) Überspannung und ein Pull-down (pull-up) widerstand. Bin über jede Hilfe dankbar. mfg. Robert
Hi, was willst du denn genau machen? Ist dein Signal ein Logikpegel? Dann schau mal genauer im Datenblatt beim ext. Interrupt nach der Int0 kann z.B. auf beide Flanken reagieren. Wenn du ein Analogsignal auf diese Weise bearbeiten möchtest, würde ich eher den ADC auf free running stellen und immer beim fertig stellen der Wandlung nachschauen, was auch immer du wissen möchtest. Grüße,
noch mal ich. Vergiss den Text oben :) Beschreib doch mal ein wenig genauer, was du machen möchtest.
Einfacher: XOR-Gatter. Auf einen Eingang das direkte Signal, auf den anderen Eingang das leicht verzögerte. Im einfachsten Fall mit RC-Glied.
Das mit dem XOR hab ich mir auch schon überlegt.
Zur genaueren Erklärung:
Ich habe zwei von einander unabhängige Signale die ich in den Bereich
0-5V bringen kann. Ich möchte jedoch möglichst genau mittels Input
Capture den Zeitpunkt einer Flanke feststellen können und zwar relativ
zu einem Timer der mittels Output Compare ein Signal ausgibt. Daher kann
ich nicht zwei ICP Eingänge nehmen da der zweite Timer ja nicht 100%
synchron ist. Ebenso ist ein Externer Interrupt zu ungenau (IMHO). Im
nachhinein nachzusehen welche Flanke von welchem Signal das gerade war
ist einfach und auch zeitlich kein Problem (Abstand von den Flanken
>1ms).
> Das ist die Lösung die ich bis jetzt erdacht habe: Die funktioniert natürlich nicht. Es fehlen Gleichstrompfade beim Kondensator. > Zur genaueren Erklärung: Geht sicher auch rein in Software.
MaWin schrieb: >> Das ist die Lösung die ich bis jetzt erdacht habe: > > Die funktioniert natürlich nicht. > Es fehlen Gleichstrompfade beim Kondensator. > Nein: Nach den Kondensatoren kommt noch eine Diode zur Begrenzung der negativen (positiven) Überspannung und ein Pull-down (pull-up) widerstand. >> Zur genaueren Erklärung: > > Geht sicher auch rein in Software. Wüsste nicht wie. Man kann zwar in der ISR die Flanke auf die der ICP Interrupt triggert ändern, das funktioniert jedoch nur für ein signal! Habe jedoch zwei die alle möglichen Zustände annehmen können.
> Habe jedoch zwei die alle möglichen Zustände annehmen können.
Hat dein Controller zwei von den Interrupts?
Ralf
Ralf schrieb: >> Habe jedoch zwei die alle möglichen Zustände annehmen können. > Hat dein Controller zwei von den Interrupts? > > Ralf Nicht am gleichen Timer. Habe jedoch bereits eine Lösung gefunden die funktioniert: siehe Anlage.
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.