PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Koord. in Form "X=123 ; Y=123" über RS323 vom µC a



katana4711
28.04.2007, 02:41
Hallo,
ich möchte gerne eine Zeichenkette, die mir an die serielle Schnittstelle gesendet wird von meinem µC auslesen lassen und weiterverarbeiten.
Wie im Titel bereits erwähnt, handelt es sich dabei um Koordinaten, welche mir in der form X=123 ; Y=123 an die RS232 anlegt werden.

Meinen µC möchte ich gerne mit µVision programmieren (also standart C Programmierung denke ich mal).

Jetzt habe ich an der RS232 einen "string" mit den Zahlen, den Leerzeichen und dem Semikolon anliegen (das ist von dem anderen Programm, was das da anlegt so vorgegeben).

Wie kann ich nun meinem µC klar machen, dass er nur die Zahlen verwenden soll und auch noch das die ersten 3 Zahlen meinen X-Wert darstellen und die anderen 3 Zahlen meinen Y-Wert ?

Ich bin in C leider nicht so fit, hab das zwar alles schonmal in der Schule gehört, aber viel vergessen.

Schlagt mich bitte nicht, falls sowas schon im Forum steht, ich habe zwar danach gesucht, aber die Masse der Posts hat mich einfach erschlagen.
Wenn sowas schon zur Genüge irgendwo besprochen wurde, wäre ich für einen Link sehr dankbar.

Was ich bisher rausgefunden habe ist, dass es wohl einen Befehl (atoi) gibt, der einen String in einen Integer umwandelt, aber wie benutze ich den befehl genau, und wie gehts dann weiter ?

Wenn ich die Zahlen dann in 2 Variablen hätte, müsste ich diese Koordinaten in Bewegungsbefehle für Motoren umwandeln, damit diese die Position der Koordinaten anfahren.

Falls mir da jemand von Euch auch nur Ansatzweise weiter helfen könnte, wäre ich Euch wirklich SEHR dankbar.

Grüsse

Katana

Felix G
28.04.2007, 10:10
Die bequemste Variante wäre sicherlich scanf()...

Also etwa so, wobei 'dein_string' halt die auszuwertende Zeichenkette enthält

int x, y;
sscanf(dein_string, "X=%d ; Y=%d", &x, &y);


falls dir scanf zu "groß" ist (Speicherverbrauch), musst du selbst eine funktion schreiben, die dir deinen string in seine Bestandteile zerlegt. Also eine Funktion die Zeichen für Zeichen durchgeht, und z.B. sobald ein X= gefunden wurde, die folgenden Zeichen bis zum ersten Leerzeichen in einen anderen string schreibt. (der sich dann mit atoi verwursten lässt)