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.
Sorry Leute hab nicht aufgepast und das falsche Program mitangehägt hier ist das richtige was ich gemacht habe.
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
Kannst du mir vielleicht eine vorgabe geben wie ich das bewergstelligen kann? Also besser gesagt wie ich das in Bascom schreiben soll
Hallo, Genau das ist mein Problem. Ih kenne mich in Bascom leider nicht aus, programmiere fast ausschließlich in C. Es gibt aber jede Menge Foren, die sich mit Bascom beschäftigen. Hier z.B. http://www.bascom-forum.de/ oder auf http://www.roboternetz.de solltest Du Dich mal umsehen. Gruß hhoopi
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.