Zitat Zitat von DasG Beitrag anzeigen
hier einfach so 3-4 Mal die Abfrage des Flags streuen, aber gibt es nicht eine efizientere Methode
Das, was bereits geschrieben wurde, ist doch effizient. Die Abfrage auf das Flag zu "streuen" ist nicht hilfreich.

Was macht wohl der Protokollautomat in dem OneWire-Chip? Der kann auch nur Zeitabstände zwischen zwei Flanken messen (oder vergleichen mit analogem Zeitglied) und bewerten, ob das ein gültiges Bit bzw. Signal war oder nicht; im letzteren Fall ist das ein Grund zum Reset der Kommunikation.

Ebenso solltest du die Kommunikation aufbauen: Bit für Bit senden und empfangen und immer parallel dazu auf Zeitüberschreitung überwachen. Also nicht irgendwie einstreuen sondern genau jede erwartete Zustandsänderung gegen unerwartete Verzögerungen etc. absichern.

Wenn OneWire was ähliches wie das Clock Stretching durch den Empfänger bei I2C kennen sollte, muss auch der Sendevorgang entsprechend überwacht werden.