Arduino (C-Sprache) - parsing-string-mit-Trennzeichen (Eingabe über die serielle Schnittstelle)

Arduino (C-Sprache) - parsing-string-mit-Trennzeichen (Eingabe über die serielle Schnittstelle)

Nicht die Antwort finden Sie hier :/

Will ich senden meinen arduino über eine serielle Schnittstelle (Serial.read()) eine einfache Zeichenfolge von drei Ziffern, getrennt mit Komma. Diese drei zahlen werden konnten, von 0-255.

ZB.
255,255,255
0,0,0
1,20,100
90,200,3

Was ich tun müssen, ist zum Parsen dieses Strings gesendet, um arduino zu drei Ganzzahlen, die (sagen wir r, g und b).

Also, wenn ich senden
100,50,30
arduino übersetzt es zu

int r = 100
int g = 50
int b = 30

Ich versuchte viele codes, aber keiner von Ihnen arbeitete. Das Hauptproblem ist, zu übersetzen string (Haufen chars) auf integer. Ich habe herausgefunden, daß es wohl strtok_r für Trennzeichen Zweck, aber das ist über es.

Vielen Dank für alle Vorschläge 🙂

  • atoi in eine Zahl
  • so, es aufgeteilt, die durch Kommas und dann atoi jedes bit
  • Warum sich die Mühe gehen durch strings? Senden Sie einfach drei bytes mit den entsprechenden Werten.
  • Wenn Sie die Steuerung der orginal gesendete Inhalte, anstatt das versenden von strings, warum nicht einfach senden 3 Byte? Dann keine Analyse oder Kommas benötigt.
  • Speichern Sie das Byte in ein unsigned char[], dann können Sie leicht Zugang zu Ihnen.
  • Können Sie Ihre Idee für eine Antwort? Würde gerne sehen, wie das aussieht, da ich versuche, die RGB-Werte und möchte mit BYTES anstelle von STRING, da es nimmt viel Platz ein und im mit ein ATTINY85.
  • Können Sie Ihre Idee für eine Antwort? Würde gerne sehen, wie das aussieht, da ich versuche, die RGB-Werte und möchte mit BYTES anstelle von STRING, da es nimmt viel Platz ein und im mit ein ATTINY85.

InformationsquelleAutor user1461310 | 2012-06-17
Schreibe einen Kommentar