Hi, hab hier nen Problem, ich hab ne RC - Fernbedieung aus dem Modelbau und mit ihr möchte ich Funktionen über meinen ATMega ausführen lassen. Die Ferbedienung erzeugt PWM Signale wobei die High zeit etwa 1-2ms beträgt und die Periode ca 20ms ausmacht. Ich habe versucht die signale einfach über nen Analogeingang aufzunehmen, das ging leider nicht. Hat das von euch schon mal jemand gemacht? Muss ich das Signal ersteinmal glätten oder irgendwie anders abfragen? Für hilfe wäre ich sehr Dankbar! MFG Christoph
Christoph schrieb: > Ich habe versucht die signale einfach über nen Analogeingang > aufzunehmen, das ging leider nicht. Das taugt auch nicht. Mess doch die Zeit direkt über einen Timereingang ähnlich wie beim Frequenzmesser
Ja aber das benötigt soviele Systemrecourcen und bremst mir den Rest aus...
Das dauert weniger lange als einen Analoseingang einlesen. Timer so einstellen, dass er in 20ms nicht überläuft Das RC Signal auf einen Interrupteingang Bei steigender Flanke Timer auf 0 setzen Bei fallender Flanke Timerwert in Variable speichern
Christoph schrieb: > Ja aber das benötigt soviele Systemrecourcen und bremst mir den Rest > > aus... Dann solltest Du schnellstens lernen, mit Interrupts und Timern umzugehen. Gruss Michael
Mit timern und Interups ist das nicht das Problem, aber ich dachte immer das das mit den Ints zu viel Systemresourcen auffrist?!? Wenn ich mich täusche dann mach ich das mit ints nur die Hardware habe ich so aufgebaut das ich die Analogen eingänge noch frei hab, muss dann alles umbasteln...
Also bei mir fressen andere Dinge Systemleistung im µC, in einer bestimmten Zeit einen Timerwert zu speichern ist nun nicht wirklich das Ding, lastet einen Atmega8 und Co nicht mal zu (gefühltem) 1% aus.
Christoph schrieb: > Mit timern und Interups ist das nicht das Problem, aber ich dachte immer > das das mit den Ints zu viel Systemresourcen auffrist?!? Noch schneller und einfacher als mit Interrupts ist nur ganz schwer möglich. Mit dem Capture Interrupt vom Timer 1 ist es geradezu ein Kinderspiel, solange es nur um 1 Servosignal geht. Prozessorauslastung: irgendwo bei vielleicht Zehntel-Prozent. Wahrscheinlich sogar noch viel weniger.
ja aber ich brauch nachher 6 Kanäle :-( hab ja auch schon an den ICP eingang gedacht, nur wohin mit den anderen 5? und hab nur noch den einen Timer Frei... Hab schon überlegt das mit dem ICP und ner Hardwarevorschaltung zu machen um die nacheinander abzufragen... Aber naja mal schauen wie ich weiter komme Danke auf jeden Fall schon mal!
Christoph schrieb: > ja aber ich brauch nachher 6 Kanäle :-( Hast du dir schon angesehen, ob die Pulse der Einzelkanäle nacheinander oder gleichzeitig aus dem Empfänger kommen?
Christoph schrieb: > Mit timern und Interups ist das nicht das Problem, aber ich dachte immer > das das mit den Ints zu viel Systemresourcen auffrist?!? Man sollte bei Überlegungen auch immer den Umkehrschluss mit bedenken. Oder meinst du, dass man in Mikrocontroller mit Absicht Features einbaut die bremsen ? Ich möchte dir ebenfalls nahelegen dich mit dem AVR-Tutorial hier zu beschäftigen. Das sind einfach elementarste Grundlagen. Wenn man sowas schon nicht beherrscht dann kommt am Ende sowieso nichts akzeptables raus. Das ist wie wenn ich Eigenwerte eine Matrix bestimmen möchte aber 1+2 nicht ausrechenn kann ... Christoph schrieb: > Wenn ich mich > täusche dann mach ich das mit ints nur die Hardware habe ich so > aufgebaut das ich die Analogen eingänge noch frei hab, muss dann alles > umbasteln... Jeder analoge Eingang kann auch als digitaler Eingang verwendet werden ... genauso eine Grundlage. Dazu müsste man natürlich wissen wie ein analoger Eingang eigentlich aussieht. Nachdem du das Tutorial aber nicht gemacht hast weißt du das offensichtlich auch nicht. Christoph schrieb: > hab ja auch schon an den ICP eingang gedacht, nur wohin mit den anderen > 5? Stichwort: multiplexen Christoph schrieb: > Ja aber das benötigt soviele Systemrecourcen und bremst mir den Rest > aus... Was musst du denn noch so groß machen ? Ich glaube du unterschätzt die Leistungsfähigkeit der Microcontroller. Sag mal was du sonst noch machen musst ...
Der µC steuert nebenbei noch die 18 Servos für die Bewegung und die 3 Servos für den kopf, habe das Programm schon zusammen gequetscht das die Servos noch schnell genug saubere Signale bekommen. Das man einen Analogen auch als normalen I/O nutzen kann ist mir schon klar. Entschuldige bitte das ich nicht die weitsicht hatte das die Ferbedienung auch nur PWM's ausgibt. Aber das ist einfach die neue ausbaustufe. An das multiplexen habe ich auch schon gedacht und was anderes wird mir wohl nicht über bleiben... Schönen abend noch :-)
Mehrere (alle) Känäle eines RC-Empfängers per µC überwachen taucht immer wieder mal im Forum auf. Ein paar Beispiele: Beitrag "4 RC-Empfängersignale mit µC messen" Beitrag "RC Summensignal erzeugen aus 6 Kanälen (Modellbau)" Ich würde sagen, die klassische Lösung zu der Fragestellung heißt Pin-Change-Interrupt. "Summensignal" ist ein gutes Suchwort zum selber stöbern.
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.