Arduino Polska Forum

Pełna wersja: Przechwycenie znaków wpisywanych do monitora portu szeregowego do tablicy
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Witam, czy ktoś ma pomysł dlaczego poniższy kod nie działa? Idea jest taka, że po wpisaniu łańcucha znaków (o różnej długości!) do monitora portu szeregowego dane te powinny zostać wpisane do tablicy a tablica wyświetlona w okienku monitora:

Kod:
char message[20]; //zadeklarowanie tablicy do przechowywania 20 znaków = 19 liter + 1 znak końca łańcucha '\0'
int i = 0; //zadeklarowanie zmiennej i jako licznika kolejnych elementów tablicy
int ilosc; //zadeklarowanie zmiennej ilosc jako dodatkowego licznika

void setup()
{
 Serial.begin(9600);
 while (!Serial); //wymagane odczekanie jeśli wykorzystujemy Leonardo
}

void loop()
{
if (Serial.available() > 0) //Gdy w buforze pojawi się pierwszy bajt - pierwszy znak otrzymany przez port szeregowy
{
     delay(1000);
if (i=0)
         {
         ilosc = Serial.available();
         Serial.println("ilość znaków w buforze: ");
         Serial.println(ilosc);
         i=i+1;
         }
     else
         {
         i=0;
         for (i=0; i<ilosc; i++)
{
message[i] = Serial.read(); //przypisanie pierwszej komórce tablicy message najstarszego (nie wykasowanego jeszcze) znaku z pamięci bufora
        }  
message[ilosc] ='\0';
         Serial.println(message); //wyświetl całą tablicę w monitorze portu szeregowego
         i = 0;
         ilosc=0;
        delay(3000);
         }
}
}
Ha, znalazłem głupi błąd. Powinno być if (i==0) i wszystko działa.