mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Wie bitte Word in String umwandeln ?


Autor: Egon (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Thomas Weyhrauch (thomas100)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In C mit
itoa oder printf

Gruß
Thomas

Autor: ekke (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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-Tu... 
LCD 
http://www.mikrocontroller.net/articles/AVR-GCC-Tu...

Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ekke schrieb:
>> als Word liefert
> Was ist Word? Du meinst wohl einen 16-Bit-Integer.

Naja, das ist so falsch nicht, es ist schliesslich trotzdem ein 
Datenwort. Es war auch üblich 16 bit breite Datentypen Word zu nennen - 
früher (tm).

Autor: Juppo Nini (juppo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi
Wenn du in C benutzt schaue mal nach "sprintf"

Gruß und guten rutsch jupp

Autor: Egon (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Joe (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht 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 . . .

Autor: Zwölf Mal Acht (hacky)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
printf() auf einem Controller ... dann kann man sich gleich erschiessen. 
Dann sind 20k Code weg. Ein InttoHex ist schnell geschrieben und braucht 
vielleicht 40 bytes

Autor: Egon (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
..vielen Dank , Joe, Dein Tip war hilfreich.

Gruß Egon

Autor: Bernhard Spitzer (b_spitzer)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.