Schönen Sonntag alle zusammen, Ich bin neu auf dem Gebiet Mikrokontroller. Ich habe ein kleines Problem. Also, ich verwende einen Atmel Mikrokontroller, dieser hat einen internen 10Bit A/D-Wander. Damit sind ja Werte von 0 - 1023 möglich, welche ja den 10Bit entsprechen. Mein Problem ist, ich brauch aber 16Bit. Wie komme ich von 10Bit auf die vollen 16Bit? Einfach nur von 10 auf 16Bit shiften funktioniert ja nicht. Ich möchte die Werte NACH der Wandlung "aufblasen" auf 16Bit, sprich aus 1023 wird 65535, usw. Also jeden Wert nach der Wandlung bearbeiten. Ich hoffe ihr könnt mir helfen. Schönen Sonntag noch
:
Verschoben durch User
Karl-Uwe schrieb: > Also jeden Wert nach der Wandlung bearbeiten http://de.wikipedia.org/wiki/Dreisatz
Warum funktioniert shiften nicht? Es wäre vermutlich die Lösung zu deinem Problem.
_M_ schrieb: > Warum funktioniert shiften nicht? > Es wäre vermutlich die Lösung zu deinem Problem. Weil vermutlich nicht die "bits" interessant ist, ein 10bit Wert kann auch ohne "shift" 16 bit beanspruchen (einfach vorne 0en einfüllen, bzw sind diese automatisch da). Es soll aber höchstwahscheinlich gelten das einfach die Werte "gestreckt" werden sollen auf eine 16bit Skala (was auch immer das bringen soll).
@Karl-Uwe mach 64 Messungen und addiere die Werte, dann hast du 16Bit - ob das was bringt ist eine andere Frage. Sascha
Hallo,
spess53 schrieb:
> ADCH und ADCL auslesen.
Aber bitte in der umgekehrten Reihenfolge (erst ADCL, dann ADCH), sonst
kommen falsche Werte heraus ...
Diese Art der Skalierung liefert allerdings Werte zwischen 0 und 65472,
da die untersten 6 Bits immer 0 sind. Bei Skalierung auf "echte" 65535
als Maximalwert muss man die Werte berechnen oder, wie bereits
vorgeschlagen, 64 10bit-Werte aufaddieren (dann hat man auch echte 16bit
Auflösung).
Wissender schrieb: > 64 10bit-Werte aufaddieren (dann hat man auch echte 16bit > > Auflösung). Angenommene 16-Bit-Möchtegern-Auflösung! mfg.
Erst mal danke für die Antworten. ADCH und ADCL auslesen würde nichts bringen, wenn da nur Werte zwischen 0 und 65472 ausgelesen werden können. Das Gleiche bekommt man auch wenn man einen 10Bit-Wert um 6 Shiftet, deswegen geht Shiften ja nicht ;-). Muss ich wohl berechnen. Und ja ich brauche nicht die Bits wie Läubi schon sagte, aber danke an alle!! Wirklich viel los für einen Sonntag hier :)
Hi
>wenn da nur Werte zwischen 0 und 65472
Ja und? Das ist richtig. Deine anvisierten 65535 sind schlichtweg
falsch.
MfG Spess
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.