Forum: Mikrocontroller und Digitale Elektronik PWM-Signal aus Fernsteuerempfänger auslesen


von Bernhard S. (dk9nw)


Lesenswert?

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

von Bernhard S. (dk9nw)


Angehängte Dateien:

Lesenswert?

Hat vorhin irgendwie den Sourcecode nicht mitkopiert.
Deshalb hier der zugehörige C-Code.

von Bernhard S. (dk9nw)


Lesenswert?

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
Noch kein Account? Hier anmelden.