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



Teraz jest 11 lis 2025, o 23:13


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
Autor Wiadomość
PostNapisane: 7 sty 2017, o 22:30 
Offline
Użytkownik

Dołączył(a): 09 lis 2014
Posty: 33
Pomógł: 0

Witam,ćwiczę z przyciskami i uruchamianiem pętli licznika Multi_led

i nie mogę zrozumieć takiego zapisu:

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


Definicja funkcji wygląda tak:

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


Gdy nacisnę KEY_PIN1 program się zatrzymuje,a jak nacisnę KEY_PIN2 wznawia się odliczanie.

Rozpisałem sobie to na kartce i sie pogubiłem bo warunek pierwszego "if" będzie spełniony po wciśnięciu KEY_PIN1 wynikiem tego będzie while(1) więc pętla nieskończona....powinno liczyć a się zatrzymuje. Natomiast jak się spełni 2 "if" to istrukcja tego wyrażenia powinno być break...a po wciśnięciu KEY_PIN2 pętla rusza....
Myślę że chodzi tu o zagnieżdżenie tego drugiego "if" ale nie mogę tego zrozumieć...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 sty 2017, o 22:50 
Offline
Użytkownik
Avatar użytkownika

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

Marcin Bąk napisał(a):
Gdy nacisnę KEY_PIN1 program się zatrzymuje,a jak nacisnę KEY_PIN2 wznawia się odliczanie.

tak ma być.
Co prawda nie pokazujesz co odlicza i jak odlicza ale po wcisnieciu KEY_PIN1 spełnia się warunek if(klawisz_wcisniety(KEY_PIN1))
i program wpada w while(1). Po wciśnięciu klawisza 2 spełnia się warunek wewnątrz pętli.
Marcin Bąk napisał(a):
będzie while(1) więc pętla nieskończona....powinno liczyć a się zatrzymuje.

Zatrzymuje się w pętli while(1) która jest cały czas spełniona

Po wciśnięciu KEY_PIN2 finkcja zwraza 1 czyli spełnie się warunek i wychodzi z pętli. nie wpadnie w nią do kolejnego wduszenie KEY_PIN1


Marcin Bąk napisał(a):
o istrukcja tego wyrażenia powinno być break...a po wciśnięciu KEY_PIN2 pętla rusza....

Break nie znaczy że program się zatrzyma, tylko zakończy wykonywanie pętli w której się aktualnie kręci i pójdzie dalej


Autor postu otrzymał pochwałę

_________________
IntegraMETEO
WordCLOCK
IntegraTOUCH



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 sty 2017, o 23:07 
Offline
Użytkownik

Dołączył(a): 09 lis 2014
Posty: 33
Pomógł: 0

No to mi się rozjaśniło....teraz to rozumiem Nie brałem pod uwagę że tam jest druga pętla...

Mam jeszcze jedno pytanie czy jest możliwe(bez użycia przerwań i timerów-bo tego jeszcze nie ogarniam )aby 1 przycisk powodował odliczanie licznika z prędkością 10ms a naciśnięcie drugiego powiedzmy 100ms.
Chyba trzeba by było napisać funkcję dla delay-a ?
Chyba to ćwiczenie (moje ćwiczenie-cel do zrealizowania przy każdym rozdziale z BB) odpuszczę i wrócę jak poznam dobrze timery i przerwania.

Dziękuję i pozdrawiam!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 sty 2017, o 23:11 
Offline
Użytkownik
Avatar użytkownika

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

Nie ucz się na delayach działać bo będzie ci ciężko przejść na przetrwania i timery (wiem po sobie).
Jak masz BB to od razu zrób na timerze.

Wysłane z mojego SM-G850F przy użyciu Tapatalka

_________________
IntegraMETEO
WordCLOCK
IntegraTOUCH



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 sty 2017, o 23:17 
Offline
Użytkownik

Dołączył(a): 09 lis 2014
Posty: 33
Pomógł: 0

Właśnie się przekonuję że delaye to...są słabe.
Teraz się przekonuje co mówił Mirek w poradnikach i książce...

Na delay-u jak chcę zrobić przycisk lub ten najprostszy licznik,to są opóźnienia...licznik się zatrzymuje...itd itp...

Ok w takim razie idę dalej z programem a jak już ogarnę timery to wrócę tu :D

Dzięki za rady.



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: 5 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 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