mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 2.4Ghz Empfänger auslesen


Autor: Remo (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Bernd Rüter (Firma: Promaxx.net) (bigwumpus)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.