mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Stringzahlen in berechenbare Zahlen umwandeln


Autor: Markus Huber (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!
Folgendes Problem:
Ich habe von einem GPS-Empfänger den Längen- und Breitengrad in
jeweils einen String eingelesen.
zB. [4812.0896] und [1512.3752]
Leider kann ich mit diesem Zahlenformat nicht rechnen.
Wie kann ich so einen String in eine float-Zahl umwandeln?????
Ich verwende CodeVisionAVR und möchte mit einem Mega163 eine kleine 
GPS-Steuerung für mein Modellflugzeug entwerfen.
Für meine Berechnungen ist der Dezimalpunkt unwichtig.
Man könnte also auch in int-Zahlen umwandeln.
Nur wie ist die Frage?

Gibts dazu Befehle oder muß man sich eine Routine schreiben.
Falls dazu eine Routine nötig ist >> ich habe keinen blaßen Schimmer wie 
ich das machen soll >> bitte um Ansatz.
Besten Dank schon mal für euer Interesse!

Max

Autor: peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Zahlen sind im ASCII-Format. Du mußt die einzelnen Stellen in 
Zahlenwerte umwandeln. Dezimal "48" repräsentiert ASCII "0", "49"="1" 
usw, bis 9.

Dann mußt Du die einzelnen Stellen mit der entsprechenden Größenordnung 
multiplizieren.

z.B.: "123" ASCII = "49" "50" "51" (so kommen die Zahlen an)
jetzt überall 48 subtrahieren, dann kriegst du "1" "2" "3" raus.
und dann 100 x "1" + 10 x "2" + 1 x "3" = 123

Grüße,
Peter

Autor: Notker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
char *itoa( int value, char *string, int radix ); Converts an integer
into a string. This is not ANSI C, but nonetheless (or maybe just
because of this) very useful.

Gruss,

Notker

Autor: Notker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry, war wohl genau das Verkehrte.

Aber jetzt ;-)

long atoi( char *p ); Converts the string 'p' to an integer.

Autor: Eckhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
alternativ atof, wenns denn flloat sein muß

Eckhard

Autor: Notker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> alternativ atof, wenns denn flloat sein muß

Wenn man es hat, ist es gut. Im avrgcc ist diese Funktion m.w. noch 
nicht implementiert. Vielleicht hat er ja bei dem CodeVision mehr Glück.

Notker

Autor: Markus Huber (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hey, danke an alle.
Mit dem was da steht müßt ichs hinbekommen.
Werde das ganze nach int wandeln da es mir einfacher erscheint.
Die Lösung von Peter gefällt mir gut, da ich das schon mal in die andere 
Richtung gemacht hab >> int to string.
long atoi( char *p ) ist auch gut, nur stört da nicht der Punkt?

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.