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
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
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).
Hi Wenn du in C benutzt schaue mal nach "sprintf" Gruß und guten rutsch jupp
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...
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
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 . . .
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
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
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.