Hallo Leute,
ich hab wieder mal mein PIC ausgepackt um etwas rumzuspielen und komm wieder mal nicht weiter.
Ich möchte ein string über rs232 auslesen, zerlegen und verarbeiten. Das Auslesen klappt, das zerlegen eigentlich auch, aber weiter komm ich nicht mehr.
So sieht mein string aus, den ich einlese und dann zerlegen möchte. So zerlegen, dass jede Zahl in eigenem array steht, so dass ich es dann weiter bearbeiten kann.
$255.100.200.100.100.311.411.511.0000$
void RDA_isr(void)
{
char buffer[100],buf[],trennzeichen[1],*ptr,*ptr3,array[10];
int8 z = 0,dollar=0;
int16 x=0;
int1 done = false;
do
{
// Zeichen empfangen?
if(kbhit(pc))
{
buf[z] = getc(pc);
// TRENNEZEICHEN gefunden?
if(buf[z] == STARTZEICHEN)
{
dollar++;
}
z++;
// Buffer voll oder String komplett empfangen?
if(z == 119 || dollar == 2) done = true;
}
}while(!done);
fprintf(pc,buf);
//Hier wird der buf-string aufgeteilt
strcpy(trennzeichen,"$"); //array mit trennzeichen beschreiben
ptr=strtok(buf,trennzeichen); //array buf zerlegen
fputs(ptr,pc);
strcpy(trennzeichen,"."); //neues Trennzeichen definieren
ptr3=strtok(ptr,trennzeichen); //string zerlegen
while(ptr3!=0)
{
puts(ptr3);
x=atol(ptr3);
ptr3=strtok(0,trennzeichen);
}
}
Das klappt soweit. Bekomme jede einzelne Zahl am PC angezeigt. Aber wie ich jetzt diese zahl in ein array pack, das habe ich noch nicht rausgefunden. Ich hoff, es kann mir einer helfen?
Gruß Max