01. april 2016 - 12:04 Der er 3 kommentarer og
1 løsning

ARDUINO - HJÆLP TIL AT TOKENIZE'.. LINIE..

HEJ,

(Indledningsvis: Jeg er ABSOLUT ikke nogen ørn til C (C++), så det kan godt være at jeg ikke alene skal have noget af det her skåret ud i pap , men også bøjet i NEON... ).

Jeg har en Arduino UNO, som skal styre 4 motorer ved hjælp af 2 L293-chips og ved hjælp af PWM.

Det vil jeg gøre ved at jeg via USB-porten på PC sender kommandoliner ud til ARD'en. ARD'en fortolker disse kommandolinier, og tager så de respektive aktioner.

Kommandolinie syntaks :

M[motornummer],S[speed],D[retning],C[count],X[xpos],Y[Ypos]<CR>

Motornumr (1-4),
Speed 0-1024
Retning H(øjre) / V(enstre)
Count 0-1024
Xpos 0-1024
ypos 0-1024

M-kommandoen kommer ALTID først. de andre er valgfrie i forhold til M-kommandoen.

Det er nu endelig lykkedes mig at få det serielle interupt il at funke, hente kommandolinen , men jeg mangler nu en kommando (?) så jeg kan lægge mine TOKEN's i et STRING Array. Check af kommanoer og (omdanne til Integer (ATOI) er ikke noget problem  senere.

Det jeg gør er følgende:

CopyStr = kommandolinie;

    char *token;
    char *rest = CopyStr;
    while((token = strtok_r(rest, delim, &rest)))
    {
      Serial.write("token: ");
      Serial.write(token);
      Serial.write("\n");
    }
     
Og det er disse TOKENs jeg giodt vil have lagt ind i et array...

Kristian
Avatar billede arne_v Ekspert
01. april 2016 - 17:06 #1
Lave et array af arrays af char og strcpy ind i det.
01. april 2016 - 19:39 #2
HEJ,

Er ved at prøve det. Melder tilbage (søndag senest).

KR
03. april 2016 - 17:35 #3
HEJ,

Fik det til at funke med

char MyStrings = {"Str1","Str2"..... , "Str8");


og senere strcpy(Mystrings[index],Token);  // eller osse er det omvendt (har ikke syntaksen her), men det funker som ønsket.

Drop et svar og du er 30 p. rigere...

1000000 -> 000  tak for hjælpen.

KR
Avatar billede arne_v Ekspert
07. april 2016 - 03:26 #4
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester