mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Programmierung des SHT11 mit dem AT90S4433


Autor: Tobias Doerffel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo!

Ich habe einen SHT11 (Temperatur und Feuchtesensor)
(http://www.sensirion.com/de/sensors/humidity/senso...)
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

Autor: Gunter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Tobias Doerffel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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!!

Autor: Tobias Doerffel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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...

Autor: Gunter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

Listing ist unterwegs

Autor: Tobias Doerffel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke, habs bekommen!!! (Antwortmail ist unterwegs :)

Autor: Werner Hoch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Tobias,

Ich hab hier C-Code für SHT11 und AT90S2313 rumliegen.

Meld dich wenn du den noch gebrauchen kannst.

mfg
werner

Autor: stromie (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Werner

stell doch mal deine C-Code als Anhang hier rein
würde mich auch interessieren.

stromie

Autor: Tobias Doerffel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Werner Hoch (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.