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



Teraz jest 25 mar 2026, o 02:34


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 9 ] 
Autor Wiadomość
PostNapisane: 16 lis 2014, o 15:40 
Offline
Nowy

Dołączył(a): 29 paź 2014
Posty: 6
Pomógł: 0

Witam. Jeśli to pytanie już padło albo gdzieś zostało wytłumaczone to ja albo tego nie znalazłem albo było niezrozumiałe dla mnie :D ...
Tak poważnie to po 20 latach nieprzyjmowania jakiejkolwiek wiedzy z nauk ścisłych mam nie lada trudności ze zrozumieniem jakichkolwiek podstaw ...
od kilku dni próbuje zrozumieć zapis z książki "blue" ze strony 110 i 111 odnośnie funkcji.
głownie chodzi mi o przykład w miejscu
...
if( klawisz_wciśnięty())
...
skąd wiadomo czy wciśnięty czy nie ?

bo jak by tam było
...
if (KEY_DOWN)
....
to rozumiem
następną zagadka jest na następnej stronie problem podobny ale w miejscu (unit8_t klawisz) skąd wiadomo o który chodzi?


Proszę się nie śmiać z mojego pytania choć nawet nie wiem czy dobrze je zadałem , zwyczajnie tego nie rozumiem... i słowo początkujący nabiera nowego znaczenia w moim przypadku... :lol:



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 lis 2014, o 15:46 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 cze 2013
Posty: 988
Lokalizacja: Byram, MS 39272
Pomógł: 55

If jest taką specyficzną funkcją w której sprawdzamy warunek i prócz sprawdzania warunków w sposób logiczny i intuicyjny
Jeżeli (a równa się b ) to --> if(a==b){}
Jeżeli (a jest różne od zera lub b jest różne od zera ) --> if(a || b){}

Warunek jest równy prawdzie jeżeli wartość KEY_DOWN jest różna od zera. Dla KEY_DOWN=0 warunek jest niespełniony

Teraz łapiesz?

Jeżeli funkcja zwróci równe zero to warunek nie będzie spełniony
http://www.le.ac.uk/users/rjm1/cotter/page_37.htm

------------------------ [ Dodano po: 12 minutach ]

Funkcja klawisz_wciśnięty() sprawdza czy klawisz został wciśnięty. Jeżeli zwróci 0 to nie został, jeżeli wciśnięto klawisz to zwróci kod klawisza (czyli wartość większą od zera).
Funkcja klawisz_wciśnięty() to po prostu procedura, która zwraca wartość. Coś jak funkcja matematyczna sin();
możesz to zapisać np tak
a = sin(30);
co w wyniku (przy założeniu, że argumentem funkcji są stopnie) da wartość a=0.5
Czyli w Twoim przypadku do warunku if jest przekazywany kod klawisza lub zero

------------------------ [ Dodano po: 14 minutach ]

ronetto napisał(a):
następną zagadka jest na następnej stronie problem podobny ale w miejscu (unit8_t klawisz) skąd wiadomo o który chodzi?



W którym to masz miejscu?

_________________
Pomysły na podpis - wyślij SMSa +1 769 243 0011



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 lis 2014, o 16:03 
Offline
Nowy

Dołączył(a): 29 paź 2014
Posty: 6
Pomógł: 0

chyba zle zadałem pytanie ... "if " rozumiem bez problemu "nawet" udało mi się napisać jakiś prosty program ale nie rozumiem używania w nawiasie tego zapisu klawisz wciśnięty to co w nawiasie. W przykładzie ze strony 110 jest coś takiego jak - unit8_t klawisz_wciśniety(void) rozumiem że to jest deklaracja funkcji a potem w pętli while(1) jest zapis if( klawisz_wcisniety()) - skąd wiadomo że klawisz jest wciśnięty ? czy ma tu jakies znaczenie (void) ?
Może teraz dobrze się wyraziłem ? Jestem na pograniczu poddania się.

------------------------ [ Dodano po: 2 minutach ]

unit8_t klawisz_wcisniety(unit8_t klawisz); // deklaracja funkcji 8 linia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 lis 2014, o 16:15 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 cze 2013
Posty: 988
Lokalizacja: Byram, MS 39272
Pomógł: 55

u mnie na 110 stronie jest zapalanie diody :). Mam BB w twardej okładce
Nie wiem o jakim przykładzie mówisz
Ale mogę się domyślać, że mówisz o jakiejś funkcji sprawdzającej naciśnięcie klawisza. Otóż ta funkcja wie czy wciśnięto przycisk z tego czy na danych pinach pojawia się odpowiedni sygnał.

_________________
Pomysły na podpis - wyślij SMSa +1 769 243 0011



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 lis 2014, o 16:26 
Offline
Nowy

Dołączył(a): 29 paź 2014
Posty: 6
Pomógł: 0

sory chodziło o stronę 111...


chyba rozumiem ....

czyli unit8_t klawisz_wcisniety(void) to deklaracja funkcji która jest zapisana za if(...) i sprawdza to co jest w int main(void){... i jeśli jest wciśnięty a wartość ( klawisz_wciśniety) będzie miała (1) to zmienia stan na bicie poprzez LED_TOG . nierozumiem tylko czemu w zapisie if (... jest pusty w środku nawias czy to to samo jakby tam był void ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 lis 2014, o 16:30 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 cze 2013
Posty: 988
Lokalizacja: Byram, MS 39272
Pomógł: 55

Na 111 też tego nie mam. Popatrzyłem w okolice stron, które podałeś ale Mirek chyba przepisał całą książkę od zera :)
Aaaa, teraz rozumiem Twoje pytanie
otóż funkcja klawisz_wciśnięty jest bezargumentowa ale żeby kompilator wiedział, że wywołujesz funkcje trzeba ją wywołać w ten sposób -->
funkcja()
Natomiast funkcje z argumentem podaje się tak --> funkcja(argument1, argument2,...);
Teraz rozumiesz?. Funkcja, która nie wymaga podania argumentów wywoływana jest z nawiasami pustymi. W Twoim przypadku if( klawisz_wciśnięty() )


Autor postu otrzymał pochwałę

_________________
Pomysły na podpis - wyślij SMSa +1 769 243 0011



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 lis 2014, o 16:33 
Offline
Nowy

Dołączył(a): 29 paź 2014
Posty: 6
Pomógł: 0

serdeczne dzięki ..skłamał bym mówiąc że będą ze mnie ludzie ale może jeszcze trochę tu zostane... Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 lis 2014, o 16:36 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 cze 2013
Posty: 988
Lokalizacja: Byram, MS 39272
Pomógł: 55

Cała przyjemność po mojej stronie :twisted:

_________________
Pomysły na podpis - wyślij SMSa +1 769 243 0011



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 lis 2014, o 16:42 
Offline
Nowy

Dołączył(a): 29 paź 2014
Posty: 6
Pomógł: 0

no nie zle pomylić 111 ze 191 trzeba mieć mistrza... ale to tylko ja potrafię... :oops: :oops: :oops:



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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 6 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:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO