Moin, ich will immer noch den BMP085 auslesen. Auf dem Rechenweg um mit den Kalibrierdaten den echten Druck zu bekommen, gibt es Schritte, bei denen Variablen unsigned Long werden können (laut Datenblatt). Das gibt es bei Bascom aber nicht, Long ist signed. Bei Single oder Double fürchte ich um die Genauigkeit. Ich möchte wirklich jedes Bit nutzen, da ich die volle Auflösung zumindest probieren möchte. Als Workaround habe ich jetzt folgende Idee: Es soll z.B. B4= AC4 * (X3+32768) / 2^15 berechnet werden. Das Ergebnis passt ev. nicht in ein signed Long und was anderes habe ich nicht. Im nächsten Schritt geht es dann aber wieder mit signed Long weiter. Ich nehme eine der Variablen, schiebe sie temporär nach rechts und prüfe, ob das Ergebnis in 30 bit passt. Wenn ja ist alles gut und ich rechne normal. Wenn nicht, setze ich ein Flag (mein fehlendes 32. Bit) und berücksichtige den Overflow im nächsten Schritt. Das erscheint mir irgendwie umständlich. /2^15 kann ich ja auch vorher machen, oder? A * B X oder A X * B ist ja das Gleiche. In einem weiteren Schritt: B7 = ((unsigned long)UP - B3) * (50000>>osrs) Mein osrs ist 3, also wird das auch immer in 31 bit passen? Wie muß ich ((unsigned long)UP - B3) verstehen? UP und B3 sind signed Long. Worauf bezieht sich hier das (unsigned long)? Soll das Ergebnis UP - B3 in einer unsigned Long unter Null überlaufen (können)? Die ganze Rechnerei ist so kompliziert, daß ich nicht überblicke, was passiert wenn ich das irgendwo vereinfache. Deswegen möchte ich mich möglichst an den Weg im Datenblatt halten. Bin gespannt auf alle Hinweise, ausser, daß ich einen vernünftigen Compiler nehmen soll ;-) Gruß, Norbert
Soso Long ist signed. Na und? Verwende doch DWort das ist unsigned und dürfte deinen Bereich andecken. Oder warum kannst du Dwort nicht verwenden?
Norbert S. schrieb: > Bei Single oder Double fürchte ich um die Genauigkeit. Interessante These, bezogen auf 64-Bit Double mit effektiv 53 Mantissenbits vs 32-Bit Integer. Weshalb?
Hi, ich muß echt öfter in die aktuelle Bascom Hilfe schauen. Na klar, Dword ist das, was ich brauche - Danke! Jetzt dämmert es auch, das gibt es wohl schon ein paar Jahre in Bascom. Damit bin ich alle Sorgen los. @A.K.: Ganz ehrlich gesagt weiß ich es nicht. Wieviele Bit hat die Mantisse? Edit: Jaja, nachträglich 53bit für die Mantisse reineditiert ;-) Danke! Spielt jetzt hier keine Rolle mehr aber das muß ich mir vielleicht für die Zukunft nochmal reinziehen. Gruß, Norbert
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.