Hallo, Folgendes Probelm ich sollte den Füllstand eines Behälters über die Kapazität bestimmen. Messungen zufolge ändert sich die Kapaziät um 1nf/Liter. Ich möchte nun den Kondensator mit Gleichstrom laden und an den Komparatoreingang des Atmega 32 anschließen. Meiner meinung nach müsste ich dann bei einer Bestimmten Spannung am Komparatoreingang einen Capture Flag auslösen und eine Interruproutine ausführen. Meine 1. Frage nun ich verstehe nicht ganz wie das mit dem Capture Flag gemeint ist. Bzw. wie kann ich die verschieden große Pulsdauer (je nach Füllstand wird ja der Komaprator früher oder später ausgelöst) messen bzw. in einen sinnvollen wert wandeln. Soviel ich gelesen habe löst das Caputure Flag ein Interrupt aus und muss ich dann in der Interruptroutine einen Timer starten der so lange zählt bis der Puls aus ist. Wie kann ich anschließend den Timer weiterverarbeiten? Hoffe ihr versteht so ungefähr was ich meine. MFG Lukas
>Meine 1. Frage nun ich verstehe nicht ganz wie das mit dem Capture Flag >gemeint ist. Bzw. wie kann ich die verschieden große Pulsdauer (je nach >Füllstand wird ja der Komaprator früher oder später ausgelöst) messen >bzw. in einen sinnvollen wert wandeln. Das InputCapture-Interrupt speichert den Wert eines (laufenden) Timers in einem Register ab. Wenn man diesen Wert bei einer steigenden und einer fallenden Flanke speichert, kann man die Dauer zwischen den beiden Flanken messen. Beispiele dafür gibt es hier im Forum zu Hauf. >Soviel ich gelesen habe löst das Caputure Flag ein Interrupt aus und >muss ich dann in der Interruptroutine einen Timer starten der so lange >zählt bis der Puls aus ist. Wie kann ich anschließend den Timer >weiterverarbeiten? Da hast du dich verlesen. Der Timer wird als erstes gestartet. Wenn der Interrupt auftritt, wird der aktuelle Zählerstand im ICR gesichert. Den kann man dann in der InterruptServiceRoutine weiterverarbeiten. Die Differenz der beiden Werte stellt die Anzahl der Timer-Takte zwischen den beiden Ereignisse dar. Um auf eine Zeit zu kommen, ist es nötig, die Timer-Taktfrequenz zu wissen...
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.