Forum: Mikrocontroller und Digitale Elektronik RS232 Daten verarbeiten.


von Jonas (Gast)


Lesenswert?

Hi,

ich habe jetzt viele 1000 Versuche gemacht, die Daten, die ich 
Zeichenweise per Interrupt in einem array speicher, zu verarbeiten.

Mein Ziel ist es Per RS232 (zum Test über Hyperterminal und dann über 
ein VB-Programm) meine 3 Schrittmotoren anzusteuren.

Prinzip:
[Nr. des Motors]
ENTER
[Anz. der Stepps.]
ENTER
[Richtung]
ENTER
[Halb-, Vollschritt]

Beispiel:
1        // Motor 1
ENTER
400      // 400 Stepps = 1 Umdrehung
ENTER
1        // Linslauf
ENTER
0        // Vollschritt
ENTER

In der Praxis schaffe ich es, dass der Motor, den ich wie oben genannt 
auswähle 0-9 Schritte macht, da ich einfach nicht weiß wie ich einen 
ganzen Arry übergebe, also nur die erste Ziffer (array[0])

Hoffe einer weiß was ich meine und weiß auch die Lösung...

Jetzt die Codes:
Funktion der Stepper (Funktioniert daher nur die "Definition"):
stepper(int drive, int steps, int dir, int mode)
{...}

Interrupt bei RS232-Empfang (klappt bis auf das genannte Problem):
SIGNAL(SIG_UART_RECV)
{
 ...
  con_str[1]=temp_str - (48*NextStr);
// -48, damit ich den ASCII-Wert  in den "richtigen" Wert bekomme...
Bsp.: ASCII:050 enspricht der 2 <-> 050-48 = 2
NextStr ist dabei die Anzahl an empfangnen Zeichen....
Wer eine Funtion dafür kennt, kann sie mir gerne mitteilen^^

 ...
stepper(con_str[0],con_str[1],con_str[2],con_str[3]);
 ...
}

Ich habe nur den Teil geposted wo das Problem liegt. Nämlich die 
übergabe des Array "temp_str" in das array "con_str[1]". Wer sich fragt 
warum - ganz einfach ich speicher nach jeden "[ENTER]" den empfangenen 
String in con_str[0-3], damit ich sie am Ende an die Stepper-Funktion 
übergeben kann.





von rene (Gast)


Lesenswert?


von Jonas (Gast)


Lesenswert?

Danke, werde ich mir mal heute nacht angucken :)

jonas

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.