Anfangs hatte ich auch keine Probleme mit den Daten der DS1820. Aber umso komplexer das Programm wurde, umso häufiger traten fehlerhafte Werte auf. Irgendein Interrupt, der dir dazwischen haut und schon ist das ganze Timing dahin. du könntest mal versuchen, um die 1wwrite Befehle ein Disable-Enable Interrupt zu legen.
Ansonsten hast du ja bei Verwendung der 1wwrite Befehle keinen Einfluss auf das Timing. Wenn deine Wartezeit nicht zu kurz ist, sollte es eigentlich immer gehen.
Aber dankenswerter Weise haben die von Dallas ja den CRC implementiert, sodass du die Fehlmessungen leicht rausfiltern kannst. Das ist auch keine große Kunst und hier im Forum schon oft gepostet worden. Mit einer Lookup Tabelle auch ziemlich effizient zu lösen.
Seit ich das eingebaut habe, gibt es keine Probleme mehr.

Gruß

Rolf