Forum: Mikrocontroller und Digitale Elektronik LCD Anzeige für SHT11


von frosty (Gast)


Lesenswert?

hallo leute,
ich bräuchte mal nen kleinen denkanstoss.
ich benutze das STK500 mit einem atmega 8 und habe da jetzt mal so nen 
SHT11 dran getüddelt.
Damit ich den ganzen ablauf besser verstehe, programmiere ich zur zeit 
noch in assembler.
das auslesen des senosors ist eigentlich kein problem, hab das zwar 
alles entwas umständlich programmiert, aber so liess sich jeder schritt 
für mich nachvollziehen (optimieren kann man ja immer noch:-)).
nun hab ich aber follgendes problem.der wert den mir der sht zurück 
liefert liegt nun in 2 register.
z.b. jetzt gerade 17b3, die ich auf einem angeschossenen lcd angezeigt 
bekomme.nur möchte ich das natürlich gerne in verständlicher ausgabe auf 
dem display haben.berechnen tut man ja nun so:
17 b3 hex=6067dez also temperatur=6067*0.01 - 40=20,67 °C
so weit so gut.
nur wie bringe ich das meinem atmega bei und das auch noch in assembler?
gutes zureden hat leider nix geholfen ;-)
oder ist das einfach zu aufwändig und ich sollte damit warten, bis ich 
mich in gcc eingearbeitet habe?
bin halt noch anfänger und versuche daher erstmal noch alles in 
assembler zu machen, da ich der meinung bin, das man da noch besser den 
ablauf und die arbeitsweise des controllers versteht.
im voraus schon mal danke für die hilfe und einen schönen sonntag noch.
gruß,
frosty

von Andreas K. (a-k)


Lesenswert?

Ohne Compiler artet solche Rechnerei etwas in Arbeit aus, vor allem wenn 
du auch noch die Nichtlinearität des SHT11 korrigieren willst.

Routinen für Arithmetik in Assembler lassen sich bei Atmel als 
Application Note finden.

von Gerhard (Gast)


Lesenswert?

Zum prinzipiellen Verständnis schau dir mal die Festkommaarithmetik 
an (Beispiele hier leider in C), und dann die AVR Arithmetik.

Mit den beiden Seiten müsste du das, was du brauchst eigentlich in 
Assembler nachprogrammieren können.

von frosty (Gast)


Lesenswert?

hallo und danke für die schnellen antworten.

@andreas:
ja, sowas habe ich schon befürchtet, das das nicht gerade einfach wird.

@gerhard:
danke für die seiten,die hatte ich noch nicht entdecke, da ich aber auch
ehrlich gesagt, gar nicht wußte, wonach ich bei meinem problem suchen 
sollte.

dann werd ich mal versuchen die seiten durchzuarbeiten und zu verstehen.
bin da mal gespannt.
sollte das doch ne nummer zu hoch für mich sein, wird der sensor erstmal 
wieder eingetütet und erst raus geholt, wenn ich mich durch das gcc 
tutorial gekämpft habe. hoffe mal, da geht es dann einfacher mit der 
berechnung.zumindest sieht es nach den code sampels vom hersteller so 
aus.
die laufen aber ohne veränderungen bei mir nicht und für die änderungen 
hab ich leider noch kein wissen.
was aber auch nicht so schlimm ist, nur vom kopieren lernt man ja auch 
nix ;-)

sollte ich das doch noch mal in assembler hin bekommen, werd ich diesen 
thread mal wieder ausgraben ( wer weiß wie lange ich da dran sitze ), 
kann ja sein das es irgendwann mal jemanden hilft.
nur erstmal keine allzugroße hoffnung in mich setzen, ich bin ja noch 
anfänger.
gruß,
frosty

von Wolfram Q. (quehl)


Lesenswert?

ich hatte hier mal gefragt, wie man am Besten durch 100 teilt. Die 
Antworten waren ganz gut. Ich habe das auch in Assembler programmiert, 
aber noch nicht getestet. Da fehlt mir noch der Hardwareaufbau.
Suche nach Division durch 100. Ich glaub so hieß das.

mfg

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
Noch kein Account? Hier anmelden.