Nun ja, der Teufel steckt wie überall im Detail.
Nehmen wir mal ein UART. Dort wird oft gewartet, bis ein Byte fertig gesendet ist. Dies könnte man auch mit einem Delay erledigen, dazu sollte man aber schlauerweise die Zeit über die Baudrate ausrechnen. Besser ist natürlich, den UART selbst zu benutzen, also auf den Status zu warten. Kann es einen externen Grund geben, daß das Status-Bit nicht kommt? Nein, ein UART sendet auch in eine defekte Hardware. Kann es einen internen Grund geben, daß das Bit nicht kommt? Schon, wenn man vergisst, den UART zu intialisieren. Will man diesen Fall in seine Fehlerbehandlung mit einbeziehen (wenn man z.B. eine Library schreibt, totale Noobs sie einsetzen um sie dann Schrott zu nennen) wäre ein Timeout eine Möglichkeit (es gibt aber mehr). Ist man sicher, daß dieser Fall nicht eintritt, ist es sicher legitim ohne timeout zu loopen.
Wie intensiv man sich solchen Überlegungen widmen sollte, hängt natürlich vom Projekt ab. Ob die Software bei einem kleinen Robotor hängt, oder ob ein 400kg Kettenfahrzeug (aus einem anderen Thread) außer Kontrolle gerät macht schon einen Unterschied.
MfG Klebwax
Lesezeichen