25-11-2016, 00:54
Witam Wszystkich!!
Pracuję na Arduino Leonardo, stworzyłem "urządzonko" które operuje na sygnale z RS232. Sygnał przychodzi na port Serial1. Udało mi się przechwycić sygnał, znajdować w nim liczby, operować na nich... Generalnie wszystko przebiegało bez wiekszych problemów, dopóki nie chciałem użyć funkcji Serial.find(), a dokładaniej Serial1.find(). Problem polega na tym że jeżeli nie otrzymam szukanego wyrażenia, program nie zwraca mi 0 po domyślnym czasie czekania, tylko się zacina i stoi na tej linijce dopóki nie "podrzucę" mu szukanych znaków. Jeżeli wpiszę funkcje Serial.find() (nie Serial1.find), funkcja bez problemu przechodzi do dalszego kodu po upływie jednej sekundy. Tak jakby funkcja nie działała z tym portem ??? Proszę o pomoc. Zamieszczam fragment kodu:
if(Serial1.find("N.m")){
jed = (" N.m");
przec = 3;
}
else if(Serial1.find("N.cm"){
jed = (" N.cm");
przec = 1;
}
Pracuję na Arduino Leonardo, stworzyłem "urządzonko" które operuje na sygnale z RS232. Sygnał przychodzi na port Serial1. Udało mi się przechwycić sygnał, znajdować w nim liczby, operować na nich... Generalnie wszystko przebiegało bez wiekszych problemów, dopóki nie chciałem użyć funkcji Serial.find(), a dokładaniej Serial1.find(). Problem polega na tym że jeżeli nie otrzymam szukanego wyrażenia, program nie zwraca mi 0 po domyślnym czasie czekania, tylko się zacina i stoi na tej linijce dopóki nie "podrzucę" mu szukanych znaków. Jeżeli wpiszę funkcje Serial.find() (nie Serial1.find), funkcja bez problemu przechodzi do dalszego kodu po upływie jednej sekundy. Tak jakby funkcja nie działała z tym portem ??? Proszę o pomoc. Zamieszczam fragment kodu:
if(Serial1.find("N.m")){
jed = (" N.m");
przec = 3;
}
else if(Serial1.find("N.cm"){
jed = (" N.cm");
przec = 1;
}