Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 19 kwi 2024, o 09:03


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 
Autor Wiadomość
PostNapisane: 3 gru 2016, o 21:50 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 23 lip 2014
Posty: 12
Pomógł: 0

Mam pętlę While sterowaną zm. "j"
Klawisze 2 i 4 mają przypisaną w funkcji to samo polecenie tzn. zmiana "j" (0 lub1 jak w komentarzu)
Chcę zatrzymać pętlę klawiszem 2 lub 4. Ale nie wykonuje się to przy użyciu klawisza który ją w głównej pętli wywołał. Krótko: Naciskam kl.2 pętla z "j" startuje, ale mogę zatrzymać ją tylko kl. 4 i nim ponownie uruchomić pętlę, ale zatrzymać już potem kl.2.
Czy ma ktoś pomysł dlaczego tym samym nie mogę zatrzymać?
Proszę nie patrzeć na negację "j" , wiem, że można inaczej.
Fragment kodu :
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Ostatnio edytowano 3 gru 2016, o 23:52 przez Zander, łącznie edytowano 3 razy

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 gru 2016, o 22:04 
Offline
Moderator zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 18 lip 2012
Posty: 3187
Lokalizacja: Kraków - obok FAB5 ATMEL'a
Pomógł: 89

topic7402.html



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 gru 2016, o 09:56 
Offline
Użytkownik

Dołączył(a): 18 kwi 2013
Posty: 181
Lokalizacja: Kraków
Pomógł: 30

Na końcu pętli while(j) trzy razy zmieniasz wartość zmiennej j. Ale ostatecznie zawsze będzie ona miała wartość taką, jaką przypisze jej funkcja key_press( &button4 ). Więc chyba tu jest problem. A gdzie jest ta negacja j?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 gru 2016, o 12:35 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 23 lip 2014
Posty: 12
Pomógł: 0

Chyba niejasno opisałem.
Na końcu pętli warunek "if" kończy pętle poprawnie. Pętla ma docelowo "zrolować" cyfrę zegarka n w dół do cyfry n+1 i inaczej dla dziesiętnych godzin( max. liczba to 5) i inaczej dla jednostek godzin (wszystkie cyfry). I to działa prawidłowo. Ale chciałem sprawdzić czy mogę ją przerwać zmieniając "j" na 0. Klawiszem 2 zmieniam "j" na 1 i pętla się wykonuje poprawnie. Ale tym samym klawiszem jej nie mogę zatrzymać. Mogę za to zrobić to klawiszem 4 który tak jak klawisz 2 też zmienia stan "j" na przeciwny. Gdy pętlę uruchomię z klawisza 4 to zatrzymać mogę tylko klawiszem 2. Wstawiłem do pętli obsługę drugiego klawisza eksperymentalnie, jak pierwszy jej nie przerywał. I wyszła mi taka "zagwozdka".
Obie funkcję wyglądają identycznie
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 8 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO