Output Nadelimpuls bei JEDER Flanke

OP #3343297
Lesenswert?
• ▲
▼
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
Gast #3343303
Lesenswert?
• ▲
▼
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,
OP #3343320
Lesenswert?
• ▲
▼
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).
OP #3343339
Lesenswert?
• ▲
▼
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.

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.