• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Przechwycenie znaków wpisywanych do monitora portu szeregowego do tablicy
#1
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);
         }
}
}
 
Odpowiedź
#2
Ha, znalazłem głupi błąd. Powinno być if (i==0) i wszystko działa.
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości