Hallo zusammen, Ich möchte aus eine vorhandenen Fernsteuerung das Ausgangssignal eines Servokanals auslesen, um dessen Pulslänge feststellen und in einer Variablem im mc ablegen. Dieses PWM-Servorsignal ist - wie zu erwaten - ein Rechtecksignal mit einer der Steuerknüppel entsprechenden Pulslänge zwischen 0.9 und 2.1 ms - alle 22 ms wiederholt. 0 auf 4.8 Volt So sehe ich es auf dem Oszi. Allerdings nehme ich erst mal ein wesentlich langsameres Rechteck (1sec lang und alle 3 sec wiederholt) aus dem Signalgenerator, um die Vorgänge an den LEDs besser beobachten zu können. Vorhanden ist eine Experimentierplatine (AVR-Ctrl) mit einem ATmega644. Das PWM-Signal habe ich an PA0=ADC0 angeschlossen. Der eigentliche Comparatoreingang AIN1 ist schon mit einer LED belegt. Deshalb habe ich per Muxer auf AIN1 geschwenkt ADMUX &= ~( (1<<MUX2) | (1<<MUX1) | (1<<MUX0) ); Das geht alles so weit. Das Problem: Eigentlich wollte ich den IR nur bei steigender Flanke auslösen. Er löst aber momentan sowohl bei steigender, als auch fallender Flanke aus. Reagiert irgendwie nicht auf ACIS1 oder ACIS0 Das gilt sowohl, wenn ich auf den IR ANALOG_COMP_vect schaue, als auch bei einer Weiterleitung in Richtung Counter1 beim TIMER1_CAPT_vect wie im Programmbeispiel zu sehen. Wo könnte da der Fehler stecken? Bernhard
Hat vorhin irgendwie den Sourcecode nicht mitkopiert. Deshalb hier der zugehörige C-Code.
Fall erledigt. Habe einfach auf External IR mit Eingang INT1 = PD3 umgestellt und schon geht es perfekt.
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.