Skocz do zawartości

Niewiedza nie boli to tylko stan umysłu ;-) Menu na oled 1306 z obsługą silników


Pomocna odpowiedź

@Norbert7630 Domyślasz się dlaczego ekrany Ci migają pomiędzy tymi dwoma switchami? Koledzy już podpowiedzieli, ale chcę to usłyszeć od Ciebie. Podpowiedź: loop, break.

Link to post
Share on other sites
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Muszę doczytać o tym bo mam taki mętlik w głowie że nic już nie mogę wymyśleć, sprawdzałem linijka po linijce czy czegoś nie zapomniałem, bo jak słusznie zauważył@bjrk kopiuj wklej to nie dobra metoda a przy tylu skasowaniach i pisaniu na nowo, i gdzie nie gdzie kopiuj wklej żeby było szybciej, to mogłem coś pominąć lub źle dopisać. Ale nie widzę żeby w którymś case brakowało zakończenia break;. Ogólnie bloki kodu są w jednej pętli głównej, program sprawdza w kółko ale wyświetla dane z case 1 w menuGlowne(), jeżeli wcisnę przycisk enter to powinien przeskoczyć do case 1 w funkcji menuSilnik1(), no i tak się dzieje ale na krótką chwile bo wraca z powrotem w to samo miejsce. Gdyby ten kod był oparty tylko na instrukcji sterującej switch/case to ten kod by zadziałał,  oczywiście zmieniając linijkę w case 1 menuGlownym, z menuSilnik1, na menuEkran = 3; w założeniu że nie ma tam żadnej funkcji menuSilnik1 i menuEkran1, tylko jest to ciąg case z menuGłównego.

Link to post
Share on other sites
2 minuty temu, Norbert7630 napisał:

 jeżeli wcisnę przycisk enter to powinien przeskoczyć do case 1 w funkcji menuSilnik1(), no i tak się dzieje ale na krótką chwile bo wraca z powrotem w to samo miejsce.

Bo jak wyswietlasz nowy ekran to musisz zapobiec temu ze wejdziesz w ekran wczesniejszy...a Ty caly czas wyswietlasz raz jeden, raz drugi ekran

Link to post
Share on other sites
19 minut temu, Norbert7630 napisał:

ale wyświetla dane z case 1 w menuGlowne(), jeżeli wcisnę przycisk enter to powinien przeskoczyć do case 1 w funkcji menuSilnik1(), no i tak się dzieje ale na krótką chwile bo wraca z powrotem w to samo miejsce.

bo wykonuje case1 z menuSilnik1, po czym jest break, więc program kończy tą instrukcję i rozpoczyna pętlę od nowa.

13 minut temu, farmaceuta napisał:

Bo jak wyswietlasz nowy ekran to musisz zapobiec temu ze wejdziesz w ekran wcześniejszy

Znasz jakiś sposób by zatrzymać program w danym miejscu do czasu spełnienia jakiegoś warunku (np. wciśnięcie przycisku)? Jakaś "mniejsza" pętla? Coś Ci się @Norbert7630 przypomina z lekcji podlinkowanej przez @ethanak?

Edytowano przez SOYER
Link to post
Share on other sites

@Norbert7630 Powtarzam się, ale odpowiedz sobie na pytanie: Ile jest klawiszy, w którym miejscu który klawisz jest obsługiwany? Zrób to przez zaznaczenie w kodzie a nie "na pamięć"! Ty wiesz co chciałeś napisać, a nie wiesz co napisałeś! Najlepiej wydrukuj sobie i kredkami zaznacz! Podpowiem Ci. Jeden z klawiszy odczytywany jest dwa razy, a inny nigdy.

Edytowano przez bjrk
Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.