Wie bitte Word in String umwandeln ?

Gast #1994965
Lesenswert?

Hallo

Kann man ein Word in einen String umwandeln , ggf. wie?

Hintergrund: Ich habe einen 10 BIT ADC (ATTINY 24) , der das Ergebnis 0 
- 1024  als Word liefert. Damit ich dieses Ergebnis auf einer LCD- 
Anzeige (z.B. mit fusing) formatiert ausgeben kann , müßte ich es als 
String vorliegen haben.

Gruß Egon
Gast #1994986
Lesenswert?

Egon schrieb:
> der das Ergebnis 0
> - 1024
Du meinst wohl 0 bis 1023.

Egon schrieb:
> als Word liefert
Was ist Word? Du meinst wohl einen 16-Bit-Integer.

Egon schrieb:
> Damit ich dieses Ergebnis auf einer LCD-
> Anzeige (z.B. mit fusing) formatiert ausgeben kann , müßte ich es als
> String vorliegen haben.
Was ist fusing?

Im übrigen musst du vermutlich noch mehr, denn der eigentliche Wert wird 
vermutlich nicht von 0 bis 1023 gehen. Du brauchst noch einen Dreisatz.
Hier etwas Lektüre:
ADC 
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#ADC_.28Analog_Digital_Converter.29 
LCD 
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Ansteuerung_eines_LCD
Gast #1995052
Lesenswert?

Danke mal.
"itoa" währe wahrscheinlich das richtige, wenn ich "C" könnte. Bin 
jedoch erst bei BASCOM (man möge mir verzeihen). 0- 1023 in 
Spannungswerte umrechnen ist kein Problem, nur das Formatieren. Ja, 16 
Bit Integer = Word.
"fusing" ist ein BASCOM- Befehl (z.B.  Lcd Fusing(volt , "#.#") ; " V"), 
der jedoch nur Single (= 8 Bit) formatiert und ich habe das doppelte = 
16 Bit, die sich mit diesem Befehl nicht formatieren lassen...
Gast #1995062
Lesenswert?

Das hab ich gerade soeben selbst benutzt.


Dim U0 As Word , U0_s As Single
.
.
.
do

U0=Getadc(0)
U0_s = U0 /30.61    'Umrechnungsfaktor
Locate 1 , 1
Lcd " " ; Fusing(u0_s , "###.##") ; "V   "   'Ausgabe der 
Batteriespannung

wait 1

loop


Viel Erfolg.

joe
#1995063
Lesenswert?

RTFM!

Die Hilfe von BASCOM gitb es als PDF, dort kann man mit CTRL-F suchen. 
Nach dem Befehl FUSING. Und, surprise, surprise, dort gibt es einen Link 
auf die Befehle FORMAT und STR, letzterer ist dein gesuchter Befehl.

Immer das Gleiche mit den BASCOM-Deppen . . .
#1995266
Lesenswert?

O.. oha Jetzt ! schrieb:
> printf() auf einem Controller ... dann kann man sich gleich erschiessen.
> Dann sind 20k Code weg.
Das muss ein ziemlich besch... Compiler sein. Raisonance braucht bei 
einfachen (s)printf() etwas über 1k, mit INT-Variablen ca. 1,8k erst mit 
Float steigt der Speicherbedarf auf etwa 3k an.

> Ein InttoHex ist schnell geschrieben und braucht vielleicht 40 bytes
Die Info bringt uns hier auch nicht weiter. Daher als 6 Zeilen 
Quellcode:
Tausender = Wert /1000;
Rest = Wert % 1000; // % = Modulo, falls das in BASCOM anders aussieht
Hunderter = Rest /100;
Rest = Rest % 100;
Zehner = Rest /10;
Einer = Rest % 10;

unn tschuess
Bernhard

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren