Arduino Polska Forum

Pełna wersja: Wyświetlacz do samochodu - termometr, zegar, prędkość - rzadko się odświeża
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Stron: 1 2 3
Zauważ, że pisząc w taki sposób:
Kod:
    if (gps.encode(Serial1.read())){
    setDisplay();
    }
funkcja setDisplay() zmieniająca symbol z iksa na satelitę ma szansę wykonać się tylko w przypadku, gdy funkcja gps.encode zwróci wartość (będziesz miał dane z GPS). W przypadku gdy danych nie masz nie dojdzie do zmiany na ekranie.


Tutaj program aż się prosi o dodanie else'a, ale z tym też uważnie - przy utracie pojedynczego pakietu danych z GPS iks może "wskoczyć" na ekran tylko na moment i przy większej częstotliwości utraty pakietów będziesz miał iksosatelitę na ekranie.

Możesz spróbować dodać np. zmienną counter, która będzie w else zwiększana i dopiero po osiągnięciu np. wartości 10 wywoła zmianę na ekranie i reset countera.
(23-04-2024, 17:01)MadMrQ napisał(a): [ -> ]Zauważ, że pisząc w taki sposób:
Kod:
    if (gps.encode(Serial1.read())){
    setDisplay();
    }
funkcja setDisplay() zmieniająca symbol z iksa na satelitę ma szansę wykonać się tylko w przypadku, gdy funkcja gps.encode zwróci wartość (będziesz miał dane z GPS). W przypadku gdy danych nie masz nie dojdzie do zmiany na ekranie.


Tutaj program aż się prosi o dodanie else'a, ale z tym też uważnie - przy utracie pojedynczego pakietu danych z GPS iks może "wskoczyć" na ekran tylko na moment i przy większej częstotliwości utraty pakietów będziesz miał iksosatelitę na ekranie.

Możesz spróbować dodać np. zmienną counter, która będzie w else zwiększana i dopiero po osiągnięciu np. wartości 10 wywoła zmianę na ekranie i reset countera.

Ta funkcja 'encode' pobiera pojedynczy znak i sygnalizuje, gdy udało jej się skompletować dane z GPS'a - kompletną odpowiednią sekwencję. Ona dziesiątki lub setki razy zwraca false i raz zwróci true. Z logicznego punktu widzenia powinna zwracać 3 wartości - MAM_DANE, BRAK_FIXA, JESZCZE_NIE_WIEM.
Dla kompletności programu należałoby wykrywać też dłuższy brak danych na porcie GPS'a - praktycznie kilkusekundowa 'cisza' sugeruje jakiś problem sprzętowy - najpewniej coś się odpięło, normalnie GPS wysyła dane co najmniej raz na sekundę.
Stron: 1 2 3