Messung eines rechteckigen Signals

Gast #1064767
Lesenswert?
• ▲
▼
Hallo Leute,

ich hoffe jemand kann mir bei der Lösung meines Problems helfen. Also 
worum es geht:
Ich muss mit einem Interrupt ein rechteckiges Signal messen. D.h. ich 
muss die Zeit von Rising bis Reising messen was ich auch geschaft habe, 
aber wie kann ich mit dem selben Innterrupt die Zeit von Rising bis 
Falling messen, dazu muss ich sagen das rechteckige Signal ändert 
anderauernd die Periodendauer, das Signal wird nicht negativ es wird nur 
1 und 0 und da wo es 1 wird, die Zeit muss ich auch mit dem selben 
Interrupt messen das heißt von Rising bis Falling, die Zeit soll man 
einfach bei der Flanke Falling ablessen und als Past in einem Hyper 
Terminal schreiben werden.

Ich hoffe ich habe mich deutlich ausgedruckt und jemand kann mir helfen, 
und es ist dringend.
Schöne größe an jeden.
Angehängte Dateien:
#1064886
Lesenswert?
• ▲
▼
Hallo,
Ich denke, Du machst das Ganze mit einem ATMega32?
Wenn ja, sollte es kein Problem sein, da der INT0, sowie der INT1 auf 
Interrupt bei logischem Wechsel des Pins gesetzt werden können. Damit 
kann man sehr hervorragend genaue Ereignisse messen, indem man z.B. bei 
High-Flanke einen Zähler startet (Timer2 wird immer gerne genommen) und 
diesen bei der Low-Flanke ausliest. Sollte der Timer überlaufen, kann 
man dessen Interrupt nutzen, um eine Variable im Speicher hochzuzählen. 
Kommt irgendwann die Low-Flanke doch noch, nimmt man die Variable mal 
Timer-Wert plus Rest des Timers und hat die genaue Zeit. Für die Zeit 
zwischen Low- und High-Flanke gilt dasselbe. Der Interrupt löst bei 
jeder Flanke aus (wenn so eingestellt). Wichtig bei genauen 
Zeitmessungen ist die Addition der Ausführungszeiten des Prozessors 
(Laden des Timers, Berechnung der Gesamtzeit usw.). Diese, auch wenn 
kleinen Zeiten sollte man nicht vernachlässigen.

Da Du das Ganze mit Basic machst, sollte Dein Eingang nicht auf 
Rising-Interrupt, sondern auf "Config Int1 = Falling/ Rising" setzen. 
Habe ich zumindest gelesen. Ich kenne mich mit Bascom nicht aus. Wenn es 
nicht klappt, sollte man diese Einstellung in Assemler einfügen.

Gruß
hhoopi

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.