OP
MFreiberger
Level-3
- Beiträge
- 3.281
- Reaktionspunkte
- 924
-> Hier kostenlos registrieren
Das ND wird in der einen Steuerung getoggelt (jede Signaländerung zeigt an, dass neue Daten geschrieben wurden). Das DR wird in der anderen Steuerung getoggelt (hier zeigt jede Signaländerung, dass die Daten verarbeitet wurden).Zweimal togglen? Das ND und dann das DR? Beim ND gibt's nix zu togglen! Die Flanke von ND ist der Trigger für das einmalige Togglen des DR.
Achtung. Nicht durcheinander werfen. Jede Richtung ist ein separater Kanal. Und in jedem Kanal ist dieser Handshake zur Übergabe der Daten aufgebaut (ND und DR).Du togglest also auf beiden Seiten und spiegelst jeweils das empfangene ToggleBit?
In Gegenrichtung genauso, wie in der hier behandelten Richtung? Und in Gegenrichtung funktioniert es tadellos und in der umgekehrten Richtung treten die Probleme reproduzierbar auf? Zwei getrennte (?!) Überwachungen dieser Art parallel?
Warum nicht, doppelt hält bekanntlich besser.
Und in beiden Richtungen läuft das wirklich getrennt voneinander ab? Oder gibt's da irgendwo einen TippFehler, so dass sich die Abläufe beider Richtungen überschneiden?
Kanal 1 (vom Controller zum Device) funktioniert.
Kanal 2 (vom Device zum Controller) funktioniert nicht.
der WatchDog ist ein (von der Kommunikation über die Kanäle unabhängiges) ToggleBit, mit dem die Verbindung überwacht wird.Beide WatchDogs laufen doch über die iDevice-Kommunikation? Oder nur die eine der beiden Richtungen bzw. der eine der beiden WatchDogs?
Genau das will ich damit sagen.Diese Aussage verstehe ich nicht wirklich. Vermutlich willst Du mir damit sagen, dass Du einen Handshake realisierst, so dass beide Seiten auf die (Re-)Aktion der jeweilegen Gegenseite warten und kein zeitlicher Rahmen dafür vorgegeben ist, der eingehalten werden müsste.
Eine Nicht-Reaktion wird "lediglich" durch den TimeOut überwacht.
Na, das hast Du doch im vorhergehenden Zitat schon beschrieben. Wenn ich auf eine (Re-)Aktion warte, ist das für mich ereignisgetriggert. D.h. ich sende nicht aufgrund eines Zeittriggers.Ereignisgetriggert? Ist eine AlarmBehandlung im Spiel (OB weiss-nicht-welcher)? Oder ist das eine Umschreibung dafür, dass Du im OB1-Zyklus
ein Polling eines Bits ausführst, also in jedem Zyklus einmal das Bit abfragst?
Habe ich in diesem Fall (noch) nicht programmiert. Halte ich zwar für "NiceToHave", bringt mich aber nicht wirklich weiter, da ich ja schon geprüft habe, ob die Signale sauber übertragen werden. Dazu reicht es m.E. zu erkennen, ob die Kommunikation überhaupt funktioniert (und das ist ja gegeben).Was sagt denn Deine KommunikationsLaufzeitMessung zu den benötigten Zeiten?
VG
Mario