DIA-Wandlung 16 bit < Elektrotechnik < Ingenieurwiss. < Vorhilfe
|
Status: |
(Umfrage) Beendete Umfrage | Datum: | 00:41 Do 20.03.2008 | Autor: | Moe1979 |
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
Hallo,
ich habe auf ner Testzplatine nen ATMEL-8bit-µController. Berechnete Werte sind intern als 32bit-Gleitkommazahl darstellbar.
Nun möchte ich diese Werte in Form einer auf 0-10V normierten Spannung ausgeben. Der Controller bietet dies Möglichkeit aber leider nicht.
So wollte ich diese Zahl auf nen 16 bit DA-Converter legen. Leider habe ich keine Ahnung wie ich diese Gleitkommazahl (unter Einbusse der Genauigkeit versteht sich) als 16 bit-Zahl für den Input des Converters aufbereiten kann.
Hat evtl. jemand von Euch nen entsprechenden Link? Oder nen Tip? iteratur? Oder ein Beispiel?
Freue mich über Eure Antwort
Danke und Gruß Moe
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 01:54 Do 20.03.2008 | Autor: | Zneques |
Hallo,
Allgemein ist natürlich erstmal zu sagen, dass mit den 32-Bit deutlich mehr Zahlen darstellbar sind als mit 16-Bit. Der Wert könnte somit außerhalb der Grenzen liegen.
Wenn dein DA-Converter Gleitkommazahlen verträgt, so ist die Sache relativ einfach. Du müsstest überprüfen, ob die dann fehlenden Stellen des Exponenten mit 0 gefüllt sind, damit sie problemlos weggelassen werden können. Danach noch die hinteren Bits der Mantisse abschneiden (daher wird es ungenauer) und schon hättest du den 16-Bit Eingang.
Falls der DA-Converter aber nur Werte 0,1,2,...,65536 erlaubt, so solltest du der Mantisse eine 16-Bit-"1" vorranstellen, um dann um Exponenten zu verschieben. Wandert dabei eine 1 nach links aus den Bits, dann ist die Zahl zu groß. Die vorrangestellten 16 Bits enthalten dann die Zahl.
Ciao.
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 01:58 Do 20.03.2008 | Autor: | rainerS |
Hallo!
> ich habe auf ner Testzplatine nen ATMEL-8bit-µController.
> Berechnete Werte sind intern als 32bit-Gleitkommazahl
> darstellbar.
>
> Nun möchte ich diese Werte in Form einer auf 0-10V
> normierten Spannung ausgeben. Der Controller bietet dies
> Möglichkeit aber leider nicht.
>
> So wollte ich diese Zahl auf nen 16 bit DA-Converter legen.
> Leider habe ich keine Ahnung wie ich diese Gleitkommazahl
> (unter Einbusse der Genauigkeit versteht sich) als 16
> bit-Zahl für den Input des Converters aufbereiten kann.
Die Eingabe für den 16bit-DA-Wandler ist doch eine 16 Bit lange ganze Zahl (0-65535). Also ist die Aufgabe, deine 32bit-Gleitkommazahl in eine 16bit Integer umzuwandeln. Deine größtmögliche Gleitkommazahl musst du auf 65535 abbilden; das gibt dir den Faktor, mit dem du multiplizieren musst, dann nur noch alle Nachkommastellen abschneiden.
Viele Grüße
Rainer
|
|
|
|