Moin ! Hat jemand etwas Code für mich, mit dem ich (RC-) Empfängersignale auswerten kann (PPM)? Ich möchte gerne 4-5 RC Kanäle auswerten. es steht aber kein Summensignal zur Verfügung.
Hallo, etwas mehr infos wären nicht schlecht, wie liegen die Signale vor, was für eine Information möchtest du aus den signalen gewinnen, usw. Sollte in Bascom eigentlich ganz einfach sein, du läßt nen Timer durchrennen und jede Signal das eintrifft wird quasi als "Trigger" verwendet. Durch ein wenig rechnerei bekommst du die Impulslänge dann als Ergebnis. MfG Roland
Moin ! Also, ich habe da einen Miniempfänger. Von dem müsste ich eben 4-5 Kanäle auslesen. Was ich damit will ... Ich möchte einen kleinen Prozessor für die X-Twin Fliegerchen proggen. Somit könnte ich dann mit meiner normalen Fernsteuerung fliegen und muss nich diesen BilligPlastikSchrott nutzen. Der Porzessor hat 2 FETs angeklemmt die direkt 2 Bürstenmotoren steuern per PWM. Und mit den 4-5 Kanälen übergebe ich ihm eben Gas, Höhe, Querruder und eben 1-2 Steuerfunktionen (noch nix in Planung). Also würden auch erstmal 3 Kanäle reichen :-)
Hmm, das klingt interessant :D Ich glaube ich hab eventuell was das vor längerer Zeit mal in C realisiert wurde. Es ist ein Programm daß die Empfangenen Fernsteuersignale entgegennimmt und den aktuellen wert in Variablen zur verfügung stellt. Benutzt wenn ich mich richtig erinnere nur einen Timer des uC. Ich muß mal sehen ob ich das heute Abend daheim noch finde. Wenn ja werde ich das hier mal Posten. Kommst du mit C zurecht oder lieber Bascom? Vielleicht kann ich dir das sonst auf die schnelle in Bascom portieren. Roland
Moin ! Nuja wenn du es portieren könntest wäre Klasse. Mein C ist eingerostet .....
Ok, ich werde mal sehen was ich tun kann heute Abend (hoffentlich finde ich das Projekt auf die schnelle noch..... g) Roland
Man fragt einfach in reglemässigen Abständen (Timer) die 4-5 Eingänge ab und vergleicht deren aktuellen Zustand mit dem vorherigen. Dadurch kann man Flanken detektieren. Hat man auf einem Kanal eine positve Flanke erkannt, speichert man den Timerstand. Wurde auf dem gleichen Kanal eine fallende Flanke erkannt, dann speichert man wieder den Timerstand und zieht den ersten von zweiten ab. Aus dem Ergebnis kann man dann auf die Pulslänge schliessen. Hannes Lu hat sowas in Assembler programmiert...
Rahul Der trollige wrote: > Hannes Lux hat sowas in Assembler programmiert... Und tut es sicher immernoch ;) http://www.hanneslux.de/avr/mobau/index.html
> Und tut es sicher immernoch ;)
Nööö, im Moment nicht, ist doch bereits fertig... ;-)
Würde ich aber heute anders machen, allerdings wieder in ASM.
...
Man könnte es wohl auch mit den Pinchange-Interrupts lösen...
Rahul Der trollige wrote: > Man könnte es wohl auch mit den Pinchange-Interrupts lösen... Jou... - Nur hatte den der AT90S2313 noch nicht. Auch eine höhere Auflösung (als die damals von mir verwendete) sollte ohne weiteres machbar sein. Wobei zu bedenken ist, dass PCI in BASCOM kritisch (zeitkritisch) werden könnte, wenn man BASCOM nicht sehr genau kennt und nicht weiß, wie man den Interrupt-Overhead minimieren kann... Also ohne etwas ASM-Wissen wird's auch in BASCOM nicht gehen. ...
Hallo, sorry daß ich mich erst jetzt melde, habe den Quellcode zwar gefunden bin aber bis jetzt noch nicht dazu gekommen das ganze mal rudimentär auf Bascom umzustricken da mich die Arbeit fest im Griff hatte (hatte bereitschaft und es war recht viel los). Ich kann nicht sagen ob mir es dieses Wochenende noch reicht. Schau dir doch mal das Programm von Hannes Lux an vielleicht kannst du das ein wenig "umbauen" für deine Zwecke. :) MfG Roland
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.