hallo! Ich habe einen SHT11 (Temperatur und Feuchtesensor) (http://www.sensirion.com/de/sensors/humidity/sensors_devices/sensorSHT11.htm) an einem AT90S4433 an den pins 6 und 7 (also die letzten beiden) von Port D. allerdings muss ich sowohl daten senden, als auch empfangen, dabei muss ich ich vor dem empfangen die letzten beiden bits von DDRD auf 0 setzten. wird dadurch der pegel an den pins 6 und 7 irgendwie geändert?? ich muss nämlich erst bestimmte sequenzen schicken und dann darauf warten, dass der SHT11 die DATA-Line (ist pin 6) auf LOW zieht. das kommt aber nicht... kann es also an dem umschalten des DDRD liegen?? noch besser wäre, wenn jemand zufällig schon mal was mit der kombination AT90S4433 (oder ähnliche) und SHT11 gemacht hat und mir da vielleicht code schicken könnte... sonstige tips und anregungen sind auch willkommen! Tschüss, Tobias
Hi Tobias, mein Tip: ziehe Dir mal von http://www.e-lab.de die Demo-Version des AVRco Pascal Compiler. Der hat einen Treiber für den SHT11, der problemlos funktioniert. Laß Dir ein kleines Programm mit dem 4433 und dem SHT11 generieren, kompiliere es (dazu brauchst Du kein einziges Pascal Statement zu schreiben). Und schau Dir dann das Assembler-Listing an. Das Listing ist sehr gut lesbar, weil da auch die Registernamen (DDRD etc.) benutzt werden. hth Gunter
hey danke für den tip! ich will bzw. kann momentan aber nicht so einen großen download machen... hast du bzw. jemand anders das zufällig auf der platte, so dass mir jemand das von gunther erwähnte listing schicken kann?? wäre wirklich echt nett!!
ich hab mir das jetzt doch downgeloadet, bei der installation bekomm ich aber immer eine fehlermeldung... geht also nicht... deshalb immer noch die bitte an irgendjemanden da draußen :) installiert das ding bitte mal und schickt mir bitte das listing. ich brauch das wirklich ganz dringend...
danke, habs bekommen!!! (Antwortmail ist unterwegs :)
Hi Tobias, Ich hab hier C-Code für SHT11 und AT90S2313 rumliegen. Meld dich wenn du den noch gebrauchen kannst. mfg werner
Hi Werner stell doch mal deine C-Code als Anhang hier rein würde mich auch interessieren. stromie
Danke für alles! Nach vielen Stunden arbeit habe ich meinen Fehler entdeckt. Man kann natürlich nicht über PORTD Daten lesen, dazu muss man PIND benutzen... das habe ich anhand des Listings von Gunter entdeckt. Der Rest war dann weniger ein Problem. Allerdings waren in dem Listing einige Fehler drinne, weshalb ich dann bestimmt noch etwa eine Stunde rumprobiert habe... Jetzt klappt alles wunderbar. Über die serielle Schnittstelle werden die Daten über ein selbst entwickeltes Protokoll übertragen, auf dem Linux-Server werden sie in eine Datenbank gesteckt und per CGI werden dann entsprechende Diagramme (für letzte Stunden, letzten Tag, letzte Woche, letzten Monat und letztes Jahr) erzeugt. Das ganze kann man sich bald unter http://www.agricola-gymnasium.de/wetter/ anschauen... momentan sind da noch die Sachen von der alten Station, die allerdings sehr fehlerhafte Daten liefert (sieht man spätestens an den Tages-Diagrammen... :) Also noch mal vielen Dank! Tschüss, Tobias
Hier ist der Quellcode, Der Code stammt ursprünglich von Sensirion und wurde von mir überarbeitet. Der Code hat noch folgende Unschönheiten: - verwendet eigene delay loops anstatt den Bibliotheksfunktionen - der Code blockiert den Controller während auf den Meßwert gewartet wird. Die Funktion sht11_get_measure_value sollte in zwei Funktionen aufgespaltet werden. (sht11_ready und sht11_get_measure_value). mfg werner
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.