-
        

Ergebnis 1 bis 5 von 5

Thema: div. Möglichkeiten zum auswerten von Modellbauempfängern

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    12.06.2006
    Beiträge
    473

    div. Möglichkeiten zum auswerten von Modellbauempfängern

    Anzeige

    Moin,

    ic wollte mal hören, ob es verschiedene Möglchkeiten gibt, das Signal von
    Modellbauempfägern auszuwerten.

    Meine Idee:
    -Timerinterrupt
    -pro Kanal eine Variable, die im Int bei HIGH Signal hochgezält wird
    - bei fallender Flanke auswerten der jew Variable und = 0 setzten.

    wie sind eure Ideen?

    Gruß,
    The Man
    Chuck Norris kann Windows Vista auf einem Atmel in Assembler implementieren!
    Chuck Norris coded mit 3 Tasten:"1","0" und "compile"

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    20.10.2007
    Ort
    Bayern
    Alter
    29
    Beiträge
    116
    Hi,

    so mach ich das auch.

    Timerinterrupt alle 0.1ms -> Zählt Variable hoch.

    Externer Interupt hängt am Empfänger und ist so konfiguriert das er bei jeder Flanke einen Interrupt bringt.
    In der ISR prüfe ich dann ob der Eingang High oder Low ist und lösche bei Low die Variable die ich im Timerinterrupt inkrementiere und bei High vergleiche ich den Wert der Variable ob sie z.B. größer 14 ist (Signal > 1.4ms).
    Wie Du sicherlich weißt liegt das Signal von RC-Empfängern im Bereich von 1-2ms, wobei dann 1ms für Min- und 2ms für Max-Ausschlag steht.

    mfg
    Benny
    cooming soon...

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    12.06.2006
    Beiträge
    473
    So wie ich das verstanden habe, ist das Kozept für einen Kanal ausgelegt?
    Der Zusammenhang von Timerint und Flankeninterrupt ist mir nicht klar

    read ya

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    20.10.2007
    Ort
    Bayern
    Alter
    29
    Beiträge
    116
    Hi,

    ja genau es ist für einen Kanal.

    Der Timerinterrupt inkrementiert eine Variable alle 0,1ms.
    Der Flankeninterrupt hat zwei Augaben. Bei einer steigenden Flanke wird die Variable die im Timerinterrupt erhöht wird auf 0 gesetzt.
    Je nachdem wie lange (in welcher Stelleung der Steuerknüppel ist) das Signal auf High bleibt wird die Varibale öfters oder weniger oft erhöht.
    Bei fallender Flanke wird der Wert der Variable ausgelesen.

    Wenn die Variable nun den Wert 15 hat weiß man das 15 * 0,1ms = 1,5ms lang das Signal auf High war also etwas über der Mittelstellung.

    mfg
    Benny
    cooming soon...

  5. #5
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Wenn man mehr auflösung braucht wird man besser einen Timer zur zeitmessung nehmen und den PIN Change interrupt nutzen. Der Timer läuft mit relativ hohem Takt (z.B. 1 MHz) durch. Bei ersten interrrupt wird die Startzeit gemerkt und beim 2 ten Interrrupt die Diffreenz bestimmt. Wenn sonst nicht viel Interrupts aktiv sind kann man so die Zeiten bis auf etwa 10 Zyklen genau messen. Wenn es genauer werden soll gäbe es noch den ICP Eingang oder die ICP Funktion über den Komperator und MUX von AD wandler. Dann aber nur jeweils 1 Kanal zur Zeit.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •