Was bei 1-Wire niemals vorkommen darf: Dass der Controller die Leitung
hoch- aber das 1-Wire-Device sie runterzieht. Der könnte leicht dabei
Schaden nehmen.
Prinzip: Beide Seiten ziehen immer nur die Leitung runter, nur der
Widerstand zieht sie hoch. Einzig wenn der Sensor 2-beinig ohne eigenen
VCC-Anschluss betrieben wird ("parasitär"), dann ist in der Messphase
mehr Strom nötig als der Widerstand liefern kann, und genau und nur dann
darf der Controller selber die Leitung aktiv nach oben ziehen.
In diesem Code kommt jedoch der Zustand PORT.x=1,DDR.x=1 vor, und genau
das sollte nicht sein.
Korrekt ist also: PORT.x bleibt permanent festgenagelt auf 0. Will der
Controller die Leitung runterziehen, setzt er DDR.x=0, will er sie
loslassen, dann DDR.x=1. Den Rest erledigt der zwingen notwendige
externe Pullup-Widerstand.