Forum: Mikrocontroller und Digitale Elektronik Wfly Multiswitch 8ch Probleme


von Gianluca P. (syrius76)


Angehängte Dateien:

Lesenswert?

Halo Gemeinde !!! :)

Erstmal sorry für mein Deutsch.
Bin Ausländer(Iteliener). Dann... mein Problem.

Ich verwende einen Atmega 128 at 20Mhz. Mein Project soll eine ergänzung 
mit
meine rc Hubschrauber werden. Videokamera, OSD, GPS, Lichter, usw.
Da mein RC Anlage (W-Fly WFT09) nur 8ch zu verfügung hat, ich versuch in 
mein projekt noch zusätzlich 8ch aufzurüsten und in meinem Elektronik zu 
integrieren. Der modul in der sender ist baugleich wie der Graupner 
Nautic Expert. Selbstgebaut mit einem Atmega8 at 8Mhz.
(http://www.toeging.lednet.de/flieger/profi/multischalt/multischalt.htm)

In meinem Quelltext für der Atmega128 hab ich versucht der Quelltext von
(http://www.toeging.lednet.de/flieger/profi/nautic/nautic.htm)

zum Umwandeln für meine AVR GCC compiler (Eclipse IDE mit AVR GCC 
Plugin).

Dann funktionierte nur teilweise.

Nach diverse versuche ohne ergebnisse hab ich dann der Quelltext selber 
geschriben und auf meine Zwecke adaptiert.

Soweit funktioniert nur... nicht richtig.

Der Servosignal (PWM) der ich von Empfänger bekomme ist sehr stabil.

Allerdings siehet es so aus dass der Controller nicht schafft der signal 
zu stabilizieren.

Nur ich kann der Problem nicht richtig finden woher liegt.
Ich hab ein Video Hochgeladen der der problem zeigen soll.
Der link ist: http://www.youtube.com/watch?v=zDYbcipEx0g

Die erste zwei wert (2050) sinds die zwei syncronisatins impulse.
Die andere 8 sollen die 8 schalterstellungen sein.

1936 = Shalter Oben.
1241 = Schalter unten;

Im Anhang liegt mein Quelltext.
Ich frage hilfe an euch Experten (da ich noch eine Anfänger bin !!)

Wo ist dann der Feheler ???
Warum ist der Signaldecodierung nicht stabil ??

Danke im vorraus für Eure Antwort.

von STK500-Besitzer (Gast)


Lesenswert?

Hallo,
der erste Fehler ist, dass deine ISR zu lang ist.
Dann solltest du den Timer nicht dauernd anhalten und wieder starten.
Der AVR besitzt die Input Capture Funktion, die für das Messen von 
Impluslängen am besten geeignet ist, da sie sowieso dafür vorgesehen 
ist.
Irgendwo hier im Forum fliegt eine Lösung für eine 
robbe/Futaba-Fernsteuerung herum, um ein Multiswitch-/Nautic-Modul 
auszulesen.
Ich weiß leider nicht mehr, wo genau der QUellcode zu finden ist.
Wenn man nach "Modellbau" oder "Servo" sucht, müsste man den Quellcode 
finden.

von Gianluca P. (syrius76)


Angehängte Dateien:

Lesenswert?

Danke für deine schnelle Antwort !!!
Am morgens bin ich ins Geshäft beschäftig dann hab ich nur Abends paar 
stunden frei.

Der Sender(W-FLY WFT09 ) ist 8 Kanäle. Hab ich der PPM signal 
abgegriffen
damit der Controller weist wann alle 8 Kanäle info gesendet worden sind.
Das eisst dass jede synchronisations impuls wird ein Kanal Info 
geschickt.
Also von der Senderseite sinds überhaupt keine Probleme. (Übrigens der 
WFLY-WFT09 ist von einen Atmega128 gesteuert)

Hab ich versucht mein Quelltext zu ändern damit ich der Input cature 
benutzen kann. Leuft soweit ruhiger als voher aber immer noch nicht 
stabil.
Dann hab ich der ISR so modifiziert das ich einfach die 10 Signale 
auslesen(oder ausmessen ?!?) kann. Und der ergebnis siehet jezt so aus
http://www.youtube.com/watch?v=0oD16QSwzFU

Ich hab einfach der Sender eingeschaltet und keine schalter betätigt 
damit mann die zwei syncronisationspuls sehen kann.

Werden 10 impulse übertragen. 2 Sync un 8 Kanalinformationen.

Ich verstehe das nicht ! Wo ist der problem ??? Kann es sein dass der 
Atmega128 bei 20Mhz zu langsam ist für diese Job ???

Danke fürs Antwort !!! :)

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.