23-04-2024, 17:01
Zauważ, że pisząc w taki sposób:
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.
Kod:
if (gps.encode(Serial1.read())){
setDisplay();
}
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.