Tiny GPS++, Problem z koordynatami - Wersja do druku +- Arduino Polska Forum (https://forum.arduinopolska.pl) +-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino) +--- Dział: Programowanie w Arduino (https://forum.arduinopolska.pl/dzial-programowanie-w-arduino) +--- Wątek: Tiny GPS++, Problem z koordynatami (/watek-tiny-gps-problem-z-koordynatami) |
Tiny GPS++, Problem z koordynatami - Osiasty - 12-03-2020 Cześć. Urządzenie do którego wysłam dane, aby prawidłowo wyświetliło Liteki E, N, W, S przy współrzędnych potrzebuje następujących danych: (01 =N.W),(02 =S.E),(03 =N.E),(04 =S.W). W tym celu zrobiłem taki szkic do pobierania danych, potem ich sprawdzenia i na końcu zastosowaniu odpowiedniej cyfry dla aktualnie nadawanych liter przy współrzędnych. Kod: #include <TinyGPS++.h> Niestety chyba coś źle napisałem bo program nie działa W terminalu odczytuje prawidłowe Literki z GPS ale dane wyjściowe "cord = 0 " a powinno wyświetlić 03 dla E, N. [attachment=961] Może ktoś pomoże w rozwiązaniu problemu. RE: Tiny GPS++, Problem z koordynatami - kaczakat - 12-03-2020 Int to nie będzie =01 tylko 1, a 01 może traktować jak liczby ósemkowe, może jako 0, choć nie wiem czy tu ma to akurat znaczenie. == dla porównania dla napisów to też może być śliski temat. Sprawdź czy ify się wykonują, wsadź jakiś wydruk na serial do każdego, potem ewentualnie dodaj else i sprawdź jakie są wyniki porównań gdy if się nie spełnia. RE: Tiny GPS++, Problem z koordynatami - Osiasty - 13-03-2020 Dziś to już zgłupiałem normalnie. Printuje A==A to daje 1 czyli działa ale jak zrobiłem takie coś: Kod: Serial.print(" DANE="); Serial.print(Lat1.value()); DANE=N, TEST1=0, TEST2=0, TEST3=1 Czyli porównanie nie działa ale czego ?? RE: Tiny GPS++, Problem z koordynatami - kaczakat - 13-03-2020 Ostatni przykład pokazał, że porównanie działa. Widocznie w Lat1.value() nie ma oczekiwanego znaku. RE: Tiny GPS++, Problem z koordynatami - Osiasty - 13-03-2020 Zadziałał bo na sztywno miało zadeklarowane (A == A) Skoro Serial.print(" DANE="); Serial.print(Lat1.value()); daje wynik : DANE=N To po podstawieniu do (Lat1.value() == 'N' ); (Lat1.value()== N ); powinno dać wynik pozytywny (1) niestety jest negatywny (TEST1=0, TEST2=0) RE: Tiny GPS++, Problem z koordynatami - kaczakat - 13-03-2020 Zobacz czy ((char) Lat1.value()=='N') daje 1. A w ogóle zajrzyj do biblioteki co zwraca ta metoda, bo może to jest string czy inne coś i to jest problemem. |