- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 10 von 60

Thema: Mehrere Servo-Signale einlesen, ggf. manipulieren, ausgeben

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    27.08.2013
    Ort
    Region Basel
    Alter
    67
    Beiträge
    2.435
    Hallo Basti,
    Zitat Zitat von Bomberpilot Beitrag anzeigen
    @Peter
    Ich vermute wirklich gleichzeitig, das Analog Oszi sieht nicht das kleinste Zucken.
    Welche Bandbreite hat der?
    Die Pulse müssten in der Grössenordnung <1µs liegen, das sollte ein 20MHz-Ozi noch anzeigen können.
    Wenn du 2 Kanäle hast, kannst du doch mal 2 benachbarte Kanäle anzeigen lassen und die Differenz der Flanken messen.
    Möglicherweise war deine Diodenmatrix nur zu langsam.

    Zitat Zitat von Bomberpilot Beitrag anzeigen
    Aber da kommt mir mit der 2 Matrix Methode eine geniale und einfache Idee.

    Beide Signale kommen an Interrupt Eingänge.
    Ein Timer läuft einfach vor sich hin. Bei Überlauf wird KEIN Interrupt geworfen. Bzw ein Überlauf könnte auf Signalverlust hinweisen (Fail-Safe Funktion)

    -INT0 is aktiv und wartet auf High Flanke
    -INT1 is deaktiviert
    -Kommt nun ein Signal an INT0 wird der Timer auf 0 gesetzt INT0 deaktiviert und INT1 aktiviert
    -Bekommt dann INT1 sein Signal wird der Timerwert gespeichert (=Länge Kanal 1), der Timer auf 0 gesetzt, ein Kanal Zähler erhöht und INT1 deaktiviert + INT0 wieder aktiviert.
    -Kommt nun wieder auf INT0 ein Signal wieder Wert speichern, Timer Reset, Kanal Zähler erhöhen, INTs tauschen usw...

    -Wenn dann der Kanalzähler auf 6 steht, wird der Interrupt nicht getauscht sondern der aktuelle auf Fallende Flanke umkonfiguriert, gibt ja keine weitere High Flanke mehr in diesem Zyklus.
    -Wenn diese LOW Flanke dann kommt, wieder Wert speichern, und alles auf Anfang:
    INT0 aktiv
    INT1 deaktiv
    Kanal Zähler 1
    Noch genauer wird das Ganze, wenn du anstatt des INTx den Capture-Eingang des Timers nimmst.
    Der einzige Nachteil ist, dass du dann die Differenz zum letzten Zählerstand berechnen musst und beim Überlauf musst du aufpassen mit der Rechnung.
    Der Jitter liegt dann aber bei +/-1 Zählerauflösung, egal wie lange es dauert bis der Interrupt abgearbeitet wird.
    Mit 1MHz-Timertakt hast du schon eine Auflösung von +/- 2µs.

    Der Capture-Eingang müsste auch mit den µs-Signalen zurecht kommen, dann müsstest du nicht mal die Flanke umschalten.

    MfG Peter(TOO)
    Manchmal frage ich mich, wieso meine Generation Geräte ohne Simulation entwickeln konnte?

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    25.10.2010
    Beiträge
    26
    Jo is ein 20MHz, sogar noch n gutes altes Hameg 203-6 aber wie gesagt, hab schon versucht mit 2 Kanälen zu messen, da sieht man absolut keine Pause zwischen den Pulsen.

    Das mit dem Capture Eingang werde ich prüfen. Der AVR hat aber wahrscheinlich nur einen? In meinem Fall Mega32, aber nur zum testen. Wenn der nur einen hat, fällt das fast wieder flach, wenn Ausgabe vom Empfänger so wie im nächsten Absatz beschrieben.

    Aber wenn die die Ausgabe ähnlich wie ich machen, gibt es keine Pause.
    Ich mache es mit nem Timer im CTC Mode und schiebe einfach ein Bit durch den Port.
    Immer wenn die erforderliche Zeit für einen Kanal verstrichen ist, wirds weiter geschoben. Danach wird dann noch so lange "leer" gewartet, bis die 20ms voll sind. Also eigentlich die beste und Ressourcen schonendste Methode, da nur ein Interrupt geworfen wird, wenn auch nötig.

    Gruß Basti

Ähnliche Themen

  1. Mehrere RC Signale einlesen und mehrere Servos ausgeben
    Von R2D2 Bastler im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 74
    Letzter Beitrag: 10.01.2022, 08:35
  2. RC-Signal einlesen verändern und wieder ausgeben.
    Von DanielSan im Forum Arduino -Plattform
    Antworten: 1
    Letzter Beitrag: 21.03.2013, 11:58
  3. Atmel128 Spannungen einlesen und Ausgeben (Display3000)
    Von Gantenbein im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 2
    Letzter Beitrag: 31.08.2007, 21:41
  4. Mehrere Signale umschalten
    Von flexxo im Forum Elektronik
    Antworten: 1
    Letzter Beitrag: 25.02.2007, 13:56
  5. Servoimpulse einlesen und ausgeben
    Von moelski im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 3
    Letzter Beitrag: 21.08.2006, 07:24

Berechtigungen

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

Solar Speicher und Akkus Tests