Hallo,
Zitat Zitat von wkrug Beitrag anzeigen
Allgemein muss man natürlich dann aufpassen, das sich die Ausgangssignale nicht überschneiden.
Dies ist sehr unwahrscheinlich, wenn man sich das Übertragungsprotoll mal angesehen hat.

Die Impulse werden direkt hintereinander gesendet. Alles andere am Ausgang ist nur Möglich wenn zwischengespeichert wird.
Die einzig mögliche Überschneidung bewegt sich im Bereich der Laufzeit-Differenzen des I/O-Ports.

Softwaremässig ist es am Einfachsten eine 1 durch das Port, bzw. eine Variable, zu schieben.

Code:
unsigned char Out;

void sync(void)
  {
    Out = 0x1;
    Port = 0x00;
  }

ISR_Flanke(void)
  {
    Port = Out;
    Out <<= 1;
  {
Drumrum braucht es natürlich noch Timeouts, um Störungen zu erkennen und simulierte ISR um in diesem Fall Standardstellungen an die Servos auszugeben.

MfG Peter(TOO)

- - - Aktualisiert - - -

Hallo,
Zitat Zitat von Bomberpilot Beitrag anzeigen
Auch die negativen? Sonst kann ich das Ende von Ch6 nicht detektieren

EDIT: Wenn ich drüber nachdenke.... Ja für jede Flanke :-D
Hab zum Glück beide grad zur Hand, kann ich also nach dem Versuch mit der Diodenmatrix auch nochmal testen.
Jo, für beide!
Im Prinzip produziert die Schaltung immer zwei Impulse, aber dies überlagern sich.

Die obere Hälft erzeugt z.B. aus der fallenden Flanke von Kanal1 einen Impuls und gleichzeitig erzeugt die untere Hälfte einen aus der steigenden Flanke von Kanal2.

MfG Peter(TOO)