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