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



Teraz jest 29 mar 2026, o 15:26


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 
Autor Wiadomość
PostNapisane: 10 sie 2016, o 08:37 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 20 paź 2013
Posty: 143
Lokalizacja: Zamość
Pomógł: 0

Witam.

Nie mogę poradzić sobie z wykonaniem pewnej instrukcji tylko "jeden raz".
Chciałbym, żeby funkcja instrukcja2 została wywołana tylko raz natomiast instrukcja1 za każdym razem.
Próbowałem zrobić inkrementację zmiennej wewnątrz if i napisać program tak, żeby tylko przy określonej wartości tej zmiennej funkcja instrukcja2 się wykonywała, jednakże niesie to za sobą takie konsekwencje, że program w takim inkrementującym liczniku "grzęźnie" i pętla while przestaje sprawdzać warunki: if(!(PINA & 0x08)) oraz if(!(PINA & 0x04)). Prosze o wskazówkę jak ugryźć ten problem?

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  
PostNapisane: 10 sie 2016, o 08:57 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 19 cze 2014
Posty: 820
Lokalizacja: Tam gdzie PYRY są
Pomógł: 64

Użyj zmiennej pomocniczej jako flaga.
po pierwszym wykonaniu instrukcji(2) resetuj flagę i ustaw ją z powrotem poza pętlą. Wykonanie się funkcji uzależnij dodatkowo od stanu flagi.

coś takiego np:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Autor postu otrzymał pochwałę

_________________
IntegraMETEO
WordCLOCK
IntegraTOUCH



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 sie 2016, o 09:02 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 cze 2014
Posty: 79
Pomógł: 1

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


To takie najprostsze rozwiązanie.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 sie 2016, o 16:50 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 30 cze 2016
Posty: 247
Lokalizacja: Rybnik
Pomógł: 13

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Jakbyś chciał by instrukcja2 wykonywała się nie razem dwa razy(raz w pierwszym if'ie raz w drugim (oczywiście po spełnieniu warunków)) tylko raz niezależnie czy w pierwszym if'ie czy drugim to zamień wszystkie flaga2 i flaga1 na flaga i zamień
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
na
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Poza tym by jeszcze raz się instrukcja1 wykonała zmieniasz wartość zmiennej flaga1, flaga2 lub flaga na 0x01 Pozdrawiam


Autor postu otrzymał pochwałę

_________________
Situs != Situs



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 3 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