2.4Ghz Empfänger auslesen

Gast #1976263
Lesenswert?
• ▲
▼
Hallo

Ich stecke einfach immer noch mit dem einlesen von 4 RC Kanälen fest.

Mein Projekt soll 4 Servokanäle einlesen können. Danach werden 2 Kanäle 
je nach Wert je ein Servo auslösen.
Die anderen beiden Kanäle werden zur steuerung zweier 
Beleuchtungsausgänge benötigt.

Nun soll dies aber Empfängerunabhängig sein.
Als ich mein neuer 14-Kanal Empfänger genauer untersucht habe, habe ich 
bemerkt, dass dieser die Kanäle 7, 8 und 9 Zeitgleich ausgibt.
Das selbe ist mit den Kanälen 10, 11 und 12.
Da ich mich aber nicht festlegen will, welchen Kanal dafür benötigt 
wird, weiss ich nicht genau wie ich vorgehen soll.
Zumal kann es auch vorkommen, dass diese Elektronik an einem Empfänger 
angeschlossen wird, welcher die Kanäle nacheinander ausgibt.

Irgendwie muss das ja möglich sein, denn die diversen Regel- oder 
Flybarlesselektronik z.B. bei einem Modellhubschrauber sind ja auch 
Epfängertyp unabhängig.

Hat da wer einen rat?

freundliche Grüsse

Remo
Angehängte Dateien:
(Firma: Promaxx.net) #1976421
Lesenswert?
• ▲
▼
Mal so zum Anfang:
Die 4 Eingänge legst Du auf PortB.7 bis PortB.4, da gibt es (seit jeher) 
einen Interrupt-on-Change !
Die CPU würde ich mit 8MHz betreiben (intern reicht völlig!)
Ein 16-Bit-Timer läuft mit Fosc/4 immer rundum.
Den Interrupt aktivierst Du und programmierst in der INT-Routine:
Jeden Eingang mit einer Schattenkopie des Eingangs vom letzten INT 
vergleichen.
Wer sich geändert hat:
Bei steigender Flanke: den Stand des Timers abspeichern.
Bei fallender Flanke: den gespeicherten Timerstand von dem aktuellen 
Timerstand subtrahieren (Achtung, durch 16-Bit-Arithmetik ist der 
Timerüberlauf egal) und für den Kanal abspeichern.
Schattenkopie aller 4 Eingänge abspeichern,
INT löschen...

In der Hauptroutine kann man dann die Timerlängen abfragen und 
entsprechend ausgeben.

Es kann zu leichten Ungenauigkeiten kommen, weil die Eingänge nur 
nacheinander abgearbeitet werden können, aber bei der Auflösung ist das 
eher unbedeutend.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.