Rufus Τ. F. schrieb:
>Deine "Beschreibung" da oben ist von "ausführlich" oder "detailliert"
>auch optimal weit entfernt.
Ich habe das Programm noch mal stark vereinfacht und das Protokoll neu
strukturiert. Sinn des Programms ist, mit minimalem Aufwand eine sichere
Verbindung zwischen verschiedenen mcus herzustellen. Der Rest erklärt
sich aus dem Code.
> Bindet man Dein "owx.h" in mehreren Dateien ein, knirscht der Linker --
> zu Recht. Das sieht bei "owx_command.h" nicht besser aus.
Das ist eine Frage der Konvention. Bei owx steht "h" für hierachisch
untergeordnete Datei zum c-Hauptprogramm. Das vereinfacht die
Programmierung. Man kann die Dateien aber auch gerne in selbständige
"c-"Dateien umbenennen. Dann muss man halt Vorkehrungen treffen, damit
es nicht zu Mehrfach-Deklarationen kommt.
> Ansonsten solltest Du Dir noch mal genau owx_rx_byte ansehen. Was
> passiert, wenn "owx_port" nicht definiert ist?
Wenn owx-pin/port nicht definiert sind, wird es schwierig. Bei 1-wire
muss man diese eine wire ja irgendwie definieren. Die Trennung in
owx-pin/port lässt die Einzeldefinition von Direction- ,Port-, und
Pin-Register entfallen. Kann man aber sicher auch anders machen. Meine
defines sind nur als Vorschlag gedacht.