Hallo,
ich suche nach einer leichten Funktion, die mir eine Integer-Zahl (Die Zahl ist zwischen 800-7000) in ein ASCII-Code umwandelt.
Ich will nämlich einen Client Daten rüberschicken, die bei mir im Programm als Integer abgelegt sind.
Hallo,
ich suche nach einer leichten Funktion, die mir eine Integer-Zahl (Die Zahl ist zwischen 800-7000) in ein ASCII-Code umwandelt.
Ich will nämlich einen Client Daten rüberschicken, die bei mir im Programm als Integer abgelegt sind.
H75FK:
Hallo,ich suche nach einer leichten Funktion, die mir eine Integer-Zahl (Die Zahl ist zwischen 800-7000) in ein ASCII-Code umwandelt.
Ich will nämlich einen Client Daten rüberschicken, die bei mir im Programm als Integer abgelegt sind.
und was ist die Basis von ASCII?
...
int a=1234;
char buffer[10];
itoa(a,buffer,10);
Buffer ist aber dann 1234.
und was ist die Basis von ASCII?
?
Buffer ist aber dann 1234.
Nein!
Der Buffer enthält dann "1234".
Aber mein Ziel war es ja, die 1234 in ASCII umzuwandlen.
H75FK:
Aber mein Ziel war es ja, die 1234 in ASCII umzuwandlen.
Genau dafür wurde die Funktion itoa() erfunden.
Was gefällt dir an deiner erfolgreichen Anwendung dieser Funktion nicht?
Tipp:
Vielleicht solltest du mal nachschlagen, was ASCII überhaupt bedeutet.
Ne ich weiß, was ASCII ist.
1 = 49
2 = 50
3 = 51
4 = 52
Diese Zahlen müsste ich dann ausgeben können, wenn ich di Funktion itoa() verwende. Dies habe ich ja auch in meinem Code verwendet.
H75FK:
Aber mein Ziel war es ja, die 1234 in ASCII umzuwandlen.
Machst du soch auch. Umwandlung in einen nullterminierten ASCII-String. Der dritte Parameter in itoa() gibt die Zahlenbasis vor. 10==> Dezimal-ASCII: 16==> Hexadezimal ASCII. 2==> Binär-ASCII.
Wenn Du statt der ASCII-Zeichen die Dezimalcodes der ASCII-Zeichen bekommen möchtest, kannst Du das mit einer anschließenden for-Schleife über alle Zeichen des Strings erledigen. itoa() macht nur die Konvertierung on einem RAM-Puffer, aber erzeugt keine Ausgabe auf Serial.
Diese Zahlen müsste ich dann ausgeben können, wenn ich di Funktion itoa() verwende.
Natürlich!
Die Frage ist dabei, für mich, warum gibtst du nicht das aus, was du ausgeben willst?
Irgendwie komme ich grad nicht mit!
Müsste ASCII-Zeichen nicht im buffer sein?=
H75FK:
Irgendwie komme ich grad nicht mit!
Offensichtlich!
H75FK:
Müsste ASCII-Zeichen nicht im buffer sein?=
Sind sie.
void setup()
{
Serial.begin(9600);
int a=1234;
char buffer[10];
itoa(a,buffer,10);
for(int i = 0; i<strlen(buffer);i++)
{
Serial.print("Zeichen: "); Serial.println((char)buffer[i]);
Serial.print("Code: "); Serial.println((byte)buffer[i]);
Serial.println();
}
}
void loop()
{
}
Achso, jetzt raffe ich die Funktion. Dankeschön!
print() macht das übrigens auch. Und das geht mit vielen Arduino Klassen die Daten senden. Eine Ausnahme ist z.B. VirtualWire