• 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
Wyświetlacz TFT 3.5, expander i Klawiatura
#6
(08-06-2020, 01:11)kaczakat napisał(a): Niestety jakoś bardzo z tym kodem Ci nie pomogę, pewnie nikt, bo jest bardzo rozbudowany i przy takim stopniu skomplikowania tego nie ogarnę.
Jeśli jednak pytasz o dodatkowe informacje to na pewno warto zamieścić kod aktualny. Zapoznaj się z funkcją getkey czy aby nie jest blokująca, bo są takie że jak ją wywołasz to musi być jakaś reakcja, może po jej wywołaniu powinien być wciśnięty przycisk.
Wg mnie to nie powinno tak wyglądać, podobnie jak z serialem. Nie powinno się wchodzić do jakiegoś pola menu i tam trzymać programu. Część programu odpowiedzialna za menu powinna pamiętać gdzie jest, jaki jest aktualny wybór. W pętli głównej niezależnie od tego co jest na ekranie powinny dalej być obsługiwane wszystkie elementy układu, zliczanie czasu, odczyt wejść, sprawdzanie czy został naciśnięty przycisk, pomiar temperatury, itp. A tylko ta funkcja, która obsługuje menu powinna sobie sprawdzać czy jeśli był wciśnięty przycisk, to jaki, w jakim miejscu menu jest i jaką akcję w związku z tym powinna zostać wykonana. Czyli do każdego punktu menu powinna być przypisana funkcja, która zostanie wywołana z tym przyciskiem jako argumentem i przynajmniej zmieni pozycję menu lub wartość zmiennej w tym elemencie menu.
Trzeba też w miarę dokładnie widzieć ile czasu zajmuje narysowanie jednego ekranu, tak by nie obciążało to zbytnio całości programu. Tu, przy podlewaniu akcje są bardzo powolne i jakby to było powiedzmy 20ms to rysowałbym go raz na 200ms, chyba że nic się nie zmieniło na ekranie. Ale 20ms to bardziej tego 2x16 tekstowy.
To co Ty wybierasz w menu, a czy to jest rysowane to też powinno być luźniej powiązane. Menu ma żyć w pamięci RAM, a że jest wyświetlane na serial, na LCD 2x16 czy na TFT to już wybór tylko w funkcji wyświetlania.

Dziękuję bardzo za zaangażowanie

Co do kodu to rozumiem, w wolnej chwili wyrzucę z niego wszystko co jest zbędne. Opisze go tak, żeby był zrozumiały przy zachowaniu niezbędnego minimum. Doczytam nieco więcej o getkey, ale powiedz mi proszę w jaki sposób zmienić prędkość odświeżania?

Co do mojego serial () to jest on chwilowo i służy tylko i wyłącznie jako debugger bo nie wiem czy istnieje jakiś leszy sposób na sprawdzanie programu w arduino IDE. 

Co do menu to właściwie co masz na myśli? Tak naprawdę to dodałem tam tylko i wyłącznie ify, bo taki najprostszy pomysł przyszedł mi do głowy, żeby pogrupować to co ma się wyświetlać w zależności co kliknie użytkownik.

W pętli głównej niezależnie od tego co jest na ekranie powinny dalej być obsługiwane wszystkie elementy układu, zliczanie czasu, odczyt wejść,

To rozumiem, poza menu dodam funkcję obsługi czasu bo mam też do zamontowania układ RTC

A tylko ta funkcja, która obsługuje menu powinna sobie sprawdzać czy jeśli był wciśnięty przycisk, to jaki, w jakim miejscu menu jest i jaką akcję w związku z tym powinna zostać wykonana.


Szczerze powiedziawszy to myślałem, że właśnie w ten sposób postępuje, mamy ify i w zależności co sobie kliknę na ekranie to wywołuje akcję typu wchodze w menu ustawień i moge wybrać np ustawienie czasu.

Za jakieś głupie pytania z góry przepraszam, ale jest to mój większy projekt i chcę dowiedzieć się jak najwięcej.
 
Odpowiedź
  


Wiadomości w tym wątku
RE: Wyświetlacz TFT 3.5, expander i Klawiatura - przez Denixen - 10-06-2020, 11:02

Skocz do:


Przeglądający: 1 gości