Gast
#519235
Hallo, möchte gerne im ATMega einen String empfangen, der so aussieht "4.123". Diese Zahl ( float) möchte ich weiterverarbetien. Es gibt aber keine String to float Umwandlung, oder? Was mache ich nun?
|
Anzeige
|
String empfangen
Gast
#519235
Hallo, möchte gerne im ATMega einen String empfangen, der so aussieht "4.123". Diese Zahl ( float) möchte ich weiterverarbetien. Es gibt aber keine String to float Umwandlung, oder? Was mache ich nun?
Gast
#519241
Wie wärs mit scanf, wenn deine Lib das unterstützt. b=val(a$) ;-) ...
Gast
#519247
Hannes, könntest Du ein Satz bitte dazu schreiben ? :)
Gast
#519250
Ich könnte das auch übernehmen. Also, hier kommt er: Welche Programmiersprache benutzt du eigentlich?
Gast
#519251
Achso, ich vergass...C..sorry, das sieht nach basic aus Rolf Magnus wrote: > Ich könnte das auch übernehmen. Also, hier kommt er: > > Welche Programmiersprache benutzt du eigentlich? Danke, Rolf... ;-) Das 'b=val(a$)' ist BASIC und wandelt den String a$ in einen Wert (Value) um, der in der Variable b zurückgegeben wird. Angenommen, es handelt sich um einen AVR unter Assembler, dann würde ich so vorgehen: - Float vermeiden, da Integer bzw. Fixkomma meist reicht - Zeichen von UART per Interrupt empfangen und in Puffer ablegen - In Mainloop gelegentlich Puffer auf gültigen (abgeschlossenen) String prüfen - Falls String ok, dann Dezimalzeichen suchen, um Wertigkeit der Ziffern zu ermitteln - jede Ziffer mit ihrer Wertigkeit multiplizieren und Ergebnisse addieren ...
Gast
#519266
Ich würde dir auch empfehlen möglichst ohne float auszukommen, wenns trotzdem sein muss wäre eine hexdezimale Übertragung timing und speicherplatz technisch sicherlich am schnellsten/kleinsten. Wenn du es unbedingt als string übertragen musst entweder mit scanf oder selbst eine kleine routine schreiben die den string byteweise zerlegt und nen float draus berechnet >Es gibt aber keine String to float Umwandlung, oder?
sprintf müsste funktionieren (ich bastel mir sowas gerne/lieber "zu
fuß"...).
Gast
#519362
Außerdem gibt's noch atof. Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|