Hallo PImo,
ich habe mich auch vor kurzem mit diesen Sensoren beschäftigt und lange an der harten Nuss zu knabbern gehabt. Leider habe ich noch nie Bascom genutzt und kann deshalb deinen Code nicht prüfen.
Meine Fehlerursache war aber das Timing. Die Zeiten im Datenblatt müssen sehr genau eingehalten werden. Ich habe stundenlang die Zeitdiagramme studiert und Codezeile für Codezeile damit abgestimmt.
Bei mir hat ein Atmel mit 1MHz Takt auch nicht gerreicht um die Delays präzise genug einzuhalten! Ich habe dann das CDIV8 Flag gelöscht und den Prozessor dann mit 8MHz betrieben und damit ist es dann gelaufen. Ich habe dann noch versucht mit optimieren das Programm auf 1MHz zum laufen zu bekommen, es aber nicht geschafft.
Dein Projekt scheint auf 1Mz konfiguriert zu sein. Meinen Erfahrugnen nach kann es so nicht funktionieren.
Weiterhin weiß ich nicht, was die Wait-Anweisungen in Bascom macht (Milli oder Mikrosekunden?) Die meissten Wartezeiten im Datenblatt des DS sind mämlich Mikrosekunden, deshalb muss vermutlich der Takt so schnell sein, damit die Delays auch genau genug eingehalten werden können.
Viele Grüße
Andreas
Lesezeichen