-
-
Erfahrener Benutzer
Roboter Genie
Hallo Michael
Kenne dich zwar nicht, aber mein Wissen zum Thema Funkfernsteuerungen wird in sehr anschaulicher Form hier vorgestellt. Kann übrigens auch anderen Benutzer dienen die sich hier informieren wollen:
www.veetail.com/HowRCWorks.shtml
Also nochmals um Mißverstände zu vermeiden, ich beziehe mich ausschliesslich mit dem Thema Signale auf jene vom Ausgangssteckker am Empfänger zum Servo. Wie du allerdings eine Flanke hin bekommst ohne mindestens 2 Pegel entzieht sich meinem Wissen.
Aber lassen wir die Polemik, dass bringt nichts.
Unter folgendem Link ist ein Fahrtregler mit dem AVR90S2323 beschrieben. Dort kann auch ein interessanter Assembler - Code eingesehen werden zu unserem Thema.
http://www.mikrocontroller-projekte.de/
Im Unterschied von den von mir genannten Code im Buch von C.Kühnel, arbeitet der Verfasser dort mit Interrupts. Meines erachtens wird beim Code von C.Kühnel der uController mit der Schleife die den DA-Port laufend auf die steigende Flanke abfragt um dann den Timer-Wert zu lesen voll beschäftigt. Eine weitere Bearbeitung wäre dann erst nach Abschluß der Auswertung aller z.B. 8 Kanäle während eines 20ms Intervalls möglich, und das kann knapp werden.
In dem Artikel den ich hier nenne könnte der mega8 in der Zeit bis mit der steigenden Flanke das Interrupt ausgelöst wird wo der Timer abgefragt wird um die Impulslänge festzustellen, andere Aufgaben lösen, das System dürfte damit zeitlich unkritisch werden.
Zum Thema Auflösung der Impulslänge, bzw. diskrete Schrittweite, der Verstellkommandos für die Servos Suche ich noch. Ich fand allerdings die oben genannte Infos sehr anschaulich und mich darauf konzentriert. Allerdings empfiehlt es sich die Daten hinter den beiden Links zu studieren. Ich möchte die hier nicht bereitstellen, da ich damit fremdes geistiges Eigentum ohne Genehmigung veröffentlichen würde.
Das Thema Schwellwert der Impulslängenänderung ist für meine Anwendung wichtig, da ich sonst schon wegen der Fluktuation aus dem Rauschen laufend alle 8-Kanal-Servo Infos aktuallisieren und an die entsprechenden Subsysteme am I2C-Bus senden müßte. Ich werde bis auf weiteres von 256 diskreten Schritten über eine Impulslängen-Änderung von 1ms ausgehen, also 4 us.
Nach dem Buch von C.Kühnle braucht man 10 Takte bei 3,69 MHz 2,3Us bei Verwendung des Listings 32 mit Assembler Code. Die 4us müßten also beherrschbar sein.
Hierzu noch eine Frage: Bei einem mega8 mit einem 16MHz Taktgeber, wären dann 10Takte auf die sich C.Kühnle bezieht nur knapp ein viertel solang, also nur ,53 us? Ich dachte intern arbeiten die AVR´s immer mit 1MHz?
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen