Hallo,
ich habe leider ein Problem mit ein String zur einer Zahl (int)umzuwanden.
ich bekomme über die Serielle Schnittstelle folgen String z,B „.SV22,12“
(.SVx,y wo x und y ein Wert von 1 bis 768 haben kann)
#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
String Zahl1A;
String Zahl2A;
int Zahl1B = 0;
int Zahl2B = 0;
// Einlesen von der Serial Schnittstelle
char character;
while(Serial.available()) {
character = Serial.read();
RX_Read.concat(character);
}
// Auswertung von der Serial Schnittstelle
if (RX_Read != “”) {
if (RX_Read.substring(0,3) == “.SV”) {
Zahl1A = RX_Read.substring(RX_Read.indexOf(‘V’)+1,RX_Read.indexOf(’,’));
Zahl2A = RX_Read.substring(RX_Read.indexOf(’,’)+1);
}
Bei “sscanf(Zahl1A,”%d",&Zahl1B);" bekomme ich die Fehler Meldung
error: cannot convert ‘String’ to ‘const char*’ for argument ‘1’ to ‘int sscanf(const char*, const char*, …)’
das gleiche bekomme ich auch mit “Zahl1B = atoi(Zahl1A);”
error: cannot convert ‘String’ to ‘const char*’ for argument ‘1’ to ‘int atoi(const char*)’
Wenn ich mir den String ausgeben lasse mit
printlm("Zahl 1 ist : " + Zahl1A);
println("Zahl 2 ist : " + Zahl2A);
bekomme ich auch “Zahl 1 ist : 22” und “Zahl 2 ist : 12” ausgegeben
aber ich schaffe es nicht die Strings in zahlen umzuwandeln.
Über eine hilfe würde ich mich sehr freuen,
Vielen Dank auch im Voraus.