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



Teraz jest 24 lis 2024, o 08:17


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 65 ]  Przejdź na stronę Poprzednia strona  1, 2, 3  Następna strona
Autor Wiadomość
PostNapisane: 7 kwi 2013, o 10:56 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 sie 2012
Posty: 52
Lokalizacja: Toruń
Pomógł: 1

życzę przyjemnej zabawy z collback'ami

Piotr



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 kwi 2013, o 15:57 
Offline
Użytkownik

Dołączył(a): 02 gru 2012
Posty: 237
Lokalizacja: Stróża-Łódż
Pomógł: 7

Witam.Mirku czy tu nie ma błędu?
#include "KEY_LIB/keys.h" czy nie powinno być tak #include "keys.h" ?
Pozdrawiam wszystkich serdecznie.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 kwi 2013, o 16:07 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27310
Lokalizacja: Szczecin
Pomógł: 1041

Józef 63 napisał(a):
Witam.Mirku czy tu nie ma błędu?
#include "KEY_LIB/keys.h" czy nie powinno być tak #include "keys.h" ?
Pozdrawiam wszystkich serdecznie.


Spójrz proszę na obrazek z Eclipse który zamieściłem w pierwszym poście gdzie widać po lewej okienko z drzewkiem projektu. Specjalnie wręcz dla symulacji ;) zewnętrznej biblioteki stworzyłem pliki keys w folderze KEY_LIB, dlatego też inkludowanie MUSI zawierać nazwę tego folderu po prostu - w tym konkretnym przypadku. Gdyby te dwa pliki były umieszczone w głównym folderze projektu to wtedy tak jak piszesz wystarczyłoby zrobić.

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 kwi 2013, o 16:30 
Offline
Użytkownik

Dołączył(a): 02 gru 2012
Posty: 237
Lokalizacja: Stróża-Łódż
Pomógł: 7

Ok. Już rozumiem błąd mojego rozumowania.Dziękuję za wyjaśnienie.
Pozdrawiam serdecznie.
Ps.W najbliższych dniach wzbogacę się o Twoją niebieską książkę to ją poczytam i nie będzie lapsusów w zadawanych pytaniach taką mam nadzieję.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 kwi 2013, o 17:40 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27310
Lokalizacja: Szczecin
Pomógł: 1041

Józef 63 napisał(a):
.... i nie będzie lapsusów w zadawanych pytaniach taką mam nadzieję.


Ale spokojnie ;) po to tu jesteśmy wszyscy żeby sobie pomagać podczas wciąż pojawiających się w głowie pytań ;) toż to normalne i wydaje mi się, że bardzo wszystkim to pomaga - mnie także ...

kłopot ma tylko ten - kto nie pyta ...

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 kwi 2013, o 19:25 
Offline
Nowy

Dołączył(a): 08 kwi 2013
Posty: 12
Pomógł: 0

Ja tylko dodam, że jak ktoś ma kłopoty z poprawnym zapisem wskaźników do funkcji to na tej stronce http://cdecl.org/ można sobie tłumaczyć pomiędzy językiem angielskim a językiem C



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 kwi 2013, o 12:46 
Offline
Użytkownik

Dołączył(a): 31 paź 2012
Posty: 99
Pomógł: 4

Witam .
Super temat więc i ja dołożę swoje pięć groszy .

Pozwolę sobie podać przykład jeszcze ze studiów , który mnie osobiście rozjaśnił ideę stosowania callbacków . Jak mawiał mój wykładowca zanim spróbujemy zrozumieć zasadę ich działania musimy zrozumieć , że są one stworzone dla nas programistów aby ułatwić nam życie , choć na początku może wydawać się inaczej. Przykładowym programem był prosty kalkulator , który miał wykonywać cztery proste obliczenia . Główna funkcja programu miała w dużym uproszczeniu :

1) pobrać dane
2) wykonać obliczenia
3) wyświetlić wynik

No i wszystko jest dość proste jeżeli wiemy jakie to będą obliczenia , a co w przypadku jeżeli nie wiemy ( bo piszemy to dla innego programisty , który dopiero oprogramuje te funkcje , lub jeżeli nawet piszemy sami to może nasz klient do końca tego jeszcze nie sprecyzował ) wtedy właśnie najodpowiedniejszym mechanizmem jest callback . W gotowym programie wystarczy przekazań wskaźnik do naszej funkcji do callbacka a on ją sobie wywoła . W naszym przykładowym programie były cztery podstawowe operacje ( dodać , odjąć , pomnożyć i podzielić ) dodatkowo wskaźniki do tych funkcji były wsadzone w tablicę a indeksy przypisane do odpowiednich przycisków . Funkcja obsługująca naciskanie przycisków przekazywała jedynie adres funkcji z odpowiedniego indeksu tablicy . Takie podejście ma jeszcze jedną wielką z punktu widzenia programisty zaletę , otóż statystycznie 80% czasu życia aplikacji to konserwacja , no i w ramach tej konserwacji powiedzmy po raku klient prosi ( za drobną oczywiści opłatą ) o dorobienie pierwiastkowana i potęgowania) . Nie musimy nawet zbytnio grzebać się we własnym kodzie , dorabiamy dwie nowe funkcje , rozszerzamy o dwa zakres tablicy ze wskaźnikami funkcji i do dwóch nowych przycisków przypisujemy dwa nowe indeksy to wszystko , główna część programu działa bez zmian i posiada dwie nowe funkcje . Ten prosty przykładzik przemówił do mnie od razu .

Przy okazji dodam jeszcze , że oglądnąłem trzy odcinki poradnika o Snake i Panie Mirku dla mnie jest to rewelacja , mam nadzieję , że znajdzie Pan czas na kolejne poradniki w formie video .



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 kwi 2013, o 13:09 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 14 lis 2011
Posty: 534
Lokalizacja: Mierzyn
Pomógł: 9

pagosa tez bardzo dobry przyklad z tym kalkulatorem :)

_________________
pozdrawiam
Jachu



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 kwi 2013, o 13:20 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27310
Lokalizacja: Szczecin
Pomógł: 1041

jachu napisał(a):
pagosa tez bardzo dobry przyklad z tym kalkulatorem :)


też się z tym zgodzę i fajnie, że pojawił się tu taki przykład ;) to się nazywa wspomaganie ....

a ja oczywiście - że mam zamiar jeszcze robić poradniki w formie video - tyle że z uwagi na próby dążenia do coraz ich lepszej jakości zarówno technicznej jak i merytorycznej (jednak taki poradnik to nie całkiem na żywo nakręcony - trzeba często coś powtarzać i kręcić od nowa materiał a już nie wspomnę o czasie wtedy przeznaczonym na ponowny montaż itp ;) ... dodatkowo wersje HD to gigantyczne ilości GB do obróbki eeeeh ..... a to wszystko czas, czas, czas .... Więc jeśli tylko zdrowie pozwoli i czas znajdę to będę starał się działać .

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 kwi 2013, o 11:37 
Offline
Użytkownik

Dołączył(a): 05 gru 2012
Posty: 67
Lokalizacja: Warszawa
Pomógł: 4

Chyba zaczynam łapać o co chodzi, ale niech ktoś potwierdzi. Tak na chłopski rozum.
Rozumiem to tak:
1. ktoś (albo ja sam) piszę funkcję do obsługi klawisza, mnie jako użytkownika interesuje tylko do której nogi procka mam podpiąć mikroprzełącznik i wiem że ta funkcja wykryje fakt wciśnięcia klawisza.
teraz jeżeli utworzę funkcję do migania LED i wywołam w programie tak:

moj_klawisz( moje_miganie_led );

to po wykryciu wciśnięcia klawisza będzie realizowana funkcja - moje_miganie_led
ale jeżeli zechcę napisać sobie inną np. włącz_telewizor to wtedy w programie pisze tak:

moj_klawisz( włącz_telewizor ); i będzie realizowana funkcja włącz_telewizor.

Ale jeśli ktoś inny napisze od nowa funkcję moj_klawisz to bardzo szybko starą mogę zastąpić nową nie ruszając całej reszty projektu.
I wreszcie gdybym napisał drugą funkcję moj_klawisz1 - która będzie reagować na wciśnięcie mikroprzełącznika podpiętego do innej nogi procka to będę mógł obsługiwać sobie jakieś funkcje zależne od wciśnięcia tego klawisza.
Czy tak?
Nie wiem czy jeszcze bardziej tego nie zamotałem??



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 kwi 2013, o 13:39 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27310
Lokalizacja: Szczecin
Pomógł: 1041

wojtek1000 --> bardzo dobrze to zrozumiałeś ;) wymieniłeś kilka zalet callbackowości ;)

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 kwi 2013, o 17:26 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 lut 2012
Posty: 243
Lokalizacja: wlkp
Pomógł: 2

Czy czasem w tych callbackach nie ma tutaj rzekomej analogii do programowania obiektowego?

funkcja moj_klawisz pełni rolę obiektu i na rzecz tej funkcji (obiektu) moj_klawisz można wywołać inne funkcje (metody) należące do klasy obiektu moj_klawisz?

Tak to właśnie odbieram po dłuższej analizie.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 kwi 2013, o 18:04 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27310
Lokalizacja: Szczecin
Pomógł: 1041

a dlaczego rzekomej ? ;) czy nie zauważacie panowie że tak przebiegał naturalny rozwój języka C do C++

no toż dokładnie o to chodzi - callbacki to protoplaści metod, ale i w C++ callbacki są wykorzystywane jako mechanizmy luzem a nie tylko metody obiektów

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 kwi 2013, o 13:51 
Offline
Użytkownik

Dołączył(a): 25 gru 2012
Posty: 128
Pomógł: 0

Czyli EVENTY() są po to aby nie grzebać w main() w razie potrzeby zmiany kodu, a CALLBACKI, żeby nie ruszać np. funkcji obsługi przycisku tylko za jej pomocą wywoływać przeróżne inne funkcje-czyli robić callback. Można by napisać, że Event jest o krok wstecz od Callbacka. Czy takie rozumowanie jest słuszne ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 kwi 2013, o 14:00 

Pomógł: 0

Ja rozumuję ;) eventy w ten sposób......

Zamiast zajmować procesor czekaniem na jakieś wydarzenie, czekam tylko na flagę i on dostając flagę obsługuję już potem całe wydarzenie.
Jak już wyżej koledzy opisywali, nie muszę się zajmować całą tą otoczką obsługi wydarzenia, czyli np. odbieraniem danych po RS232 itp. Tylko dostaję gotową ramkę w buforze i callback woła hej, masz tu ramkę rób z nią teraz co chcesz masz wskaźnik (czy co tam ustawimy) na bufor i zapala flagę że bufor pełny, albo, że przyleciała właściwa dana.
Miałem tak odbierając dane z końcówką CF LR i dopiero wtedy "obrabiałem" bufor w main().



Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 16 kwi 2013, o 14:27 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27310
Lokalizacja: Szczecin
Pomógł: 1041

rezasurmar --> tylko wydaje mi się, że tym co napisałeś - troszeczkę jeszcze mało klarownie widzisz może różnice pomiędzy EVENTAMI a Callbackami, troszkę jakby może mieszasz te dwa pojęcia. Tzn nie zrozum mnie źle - to wszystko w takim języku jak C jest bardzo płynne bo że tak powiem szyte na miarę i można zrobić na 100 różnych sposobów, więc i w tym co piszesz także masz rację. Ale dopiero C++ standaryzuje to wszystko formalnie ;)

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 kwi 2013, o 14:31 

Pomógł: 0

No u mnie niestety się to miesza ;), tj. nie ogarniam tak tego na poziomie atomowym jak wielu kolegów.
Nie mam chwilowo takiej potrzeby, dla mnie eventy to takie czarne skrzynki wołające ej, hej, mam tu dla ciebie dane, wydarzenia itp., zajmij się nimi.

Tj. cały czas to dla mnie jest coś w formie uchwytów jak np. w Borland Builder myszką robiło się grafikę, menu itp. a potem programowało się do tego obsługę.

Czyli klikając na przycisk, następowało zdarzenie które dopiero zostawało zauważone jak by przez nas, a reszta tego mechanizmu nas nie interesuje, kto klika, czym klika itd.
Ewentualnie slidery na zasadzie sprzężenia zwrotnego, czyli za pomocą jakiś "potencjometrów" można było sobie regulować kolor, albo wpisując z ręki kod koloru "potencjometry" ustawiały się na zadanych miejscach.
Nie wiem, czy to dobrze rozumiem, ale mnie taka analogia do zdarzeń czyt. event-callback najbardziej przemawia, bo następuje tu też przekazywania parametrów w obydwie strony bez konieczności posiadania wiedzy co jest w środku. Wystarczy nam tylko znajomość "interfejsu" jego "uchwytów".

Tj. cały czas mam przed oczami analogie programowania w IDE Borlanda C++ okienkowych aplikacji, bo na tym się kiedyś uczyłem.

Oj, zdaje mi się, że musiał bym mieć to jakoś obrazkowo wyjaśnione ;).....niby rozumiem, ale nie do końca.



Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 16 kwi 2013, o 15:15 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27310
Lokalizacja: Szczecin
Pomógł: 1041

Nie no spoko - rozumiesz - tylko ja gdy staram się tłumaczyć to jakby wyraźnie oddzielam EVENT od Callbacka dlatego że każdy z nich może żyć własnym i całkiem innym życiem, czyli jeden bez drugiego - bardziej o to mi chodzi.

Ale jeśli spojrzeć na taki EVENT jak na czarną skrzynkę (lepiej może wręcz OBIEKT jak wyżej któryś kolega napisał) to wtedy rzeczywiście takiego callbacka można przymocować (przyspawać) do obiektu jako jego metodę (porównując właśnie do C++) ;)

więc jak widzisz poruszamy się po tym samym podwórku - tyle że staram się pokazywać - różne możliwości jakby korzystania z takich narzędzi gdy weźmie się w rękę każde oddzielnie.

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 maja 2013, o 00:34 
Offline
Nowy

Dołączył(a): 02 mar 2013
Posty: 12
Pomógł: 0

Na czym polega wymieniana wcześniej owa "Przezroczystość" funkcji?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 maja 2013, o 04:52 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27310
Lokalizacja: Szczecin
Pomógł: 1041

na tym że funkcja jest nieblokująca czyli wykona tylko to co ma zrobić i nie używa bron boze delayow albo innych opoznien

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 maja 2014, o 14:03 
Offline
Użytkownik

Dołączył(a): 25 gru 2012
Posty: 128
Pomógł: 0

Witam
Prawie już rok minął od ostatniego postu na temat Callbacków, mimo to postanowiłem dopisać jakie mam przemyślenia na ich temat. Zamieszczam zdjęcia ponieważ jakoś tak fajniej mi się myśli z 'ołówkiem w ręku' i kartce. Może komuś taka forma bardziej przypadnie do gustu.
Aby maksymalnie przekazać 'treść', zrezygnowałem z wszelkich formalności jakimi są odpowiednie typy zmiennych itd. chodziło mi tylko o przekazanie idei callbacków.
Starałem się uniknąć błędów w rozumowaniu. Gdyby jednak się pojawiły to oczywiście proszę je wytykać bez żadnych skrupułów.
Pozdrawiam.

ObrazekObrazekObrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 sie 2014, o 19:54 
Offline
Użytkownik

Dołączył(a): 08 mar 2014
Posty: 390
Lokalizacja: Głogów
Pomógł: 11

A ja może nie na temat, chce obsłużyć enkoder (na atmedze 8 taktowanej kwarcem16mhz) oraz wyświetlać wynik na wyświetlaczu 4xLED, dodatkowo chce obsługiwać termometr ds18b20 i odmierzać czas do 1 godziny. Nie mam pojęcia jak sie za to zabrać. Enkoder potrzebuje przerwania co 1ms, wyświetlacz co 5ms, termometr co 1s. Czy użyć osobnych timerów do obsługi każdego "działu" i jeśli tak to czy timer co 1ms powinien mieć większy priorytet niż ten co 5ms czy odwrotnie aby oba peryferia się nie zakłócały wzajemnie. Może użyć jednego timera i zrobić timery programowe, ale wtedy przy odczycie z termometru wyswietlacze będą przygasać. Jak Wy byście się za to zabrali?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 sie 2014, o 17:40 
Offline
Nowy

Dołączył(a): 07 sie 2014
Posty: 6
Pomógł: 1

Witam Wszystkich Serdecznie!

Fajne te Callbacki. Dzięki za przybliżenie tematu.

Mam jeden problem, ale to już konkretną biblioteką do obsługi Enkodera opisaną szczegółowo tutaj:

http://mirekk36.blogspot.com/2013/04/en ... y-cz2.html

Ze względu na rodzaj enkodera "wynik" zmienia się co drugi klik, ale to mniejsza.
Gorzej, że tak prosta rzecz jak przycisk niestety nie chce współpracować. Reakcja jest na kliknięcia, które wykonam co 10 sekund. Nie co drugi czy 10-ty klik, a po 10 sekundach od ostatniego kliknięcia. Wcześniej jest brak reakcji.

Jak wpisałem w pętli głównej tylko wywołanie: ENCODER_EVENT( speed ); to wszystko działało jak należy. Ale wpisanie czegokolwiek np. odczyt godziny z PCF-a po I2C, czy wyświetlenie zmiany na LCD, to zaczęły się robić takie dziwadła.

Jedynym sposobem jest kasowanie zmiennej key_lock w obsłudze przycisku. Ale to z kolei powoduje, że często są podwójne lub potrójne reakcje na wciśnięcie. Mogę oczywiście przykleić jakiś plaster i odczekać 50ms, ale nie o to chodzi.

I dziwne jest to, że w tym samym czasie obrót enkodera i wyświetlanie wszystkiego co żyje, jest obsługiwane jak należy, a będąca w tej samej procedurze obsługa przycisku już nie.

Nie chce na razie zmieniać biblioteki obsługi enkodera, bo ta jest bardzo fajna (przy okazji duże podziękowania dla Autora), ale gdzie szukać błędu?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 sie 2014, o 14:56 
Offline
Nowy

Dołączył(a): 07 sie 2014
Posty: 6
Pomógł: 1

Ok. Już wszystko wiem.

Swoją drogą bardzo się zdziwiłem, że działanie pewnego elementu układanki zależy w dużym stopniu od tego co wstawimy do main, ale widać tak to zostało napisane i tak miało być.
Pozmieniałem i dopasowałem do swoich potrzeb.

pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 wrz 2014, o 19:16 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27310
Lokalizacja: Szczecin
Pomógł: 1041

MrNew napisał(a):
Ale ty to masz muskuły!!!


Każdy ma takie jak już się zmierzy z callbackami ;) wtedy już łatwiej

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 paź 2014, o 13:58 
Offline
Nowy

Dołączył(a): 16 mar 2014
Posty: 13
Pomógł: 0

Witam! Dopiero co zaczynam swoją przygodę z callbackami, więc proszę o wyrozumiałość :) Chodzi mi o fragment kodu z GreenBook`a dotyczącego transmisji radiowej 433/868 MHz:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Chciałbym zapytać, czy zamiast tworzyć wskaźników do funkcji callback nie moglibyśmy po prostu w nazwach funkcji do rejestracji funkcji zwrotnej zmienić zapis na ...(void(*callback1)(uint8_t bajt, uint8_t key_time)) oraz ...(void(*callback2)(char *s) , a następnie w ten sposób sprawdzać czy użytkownik zarejestrował swoją funkcję obługującą:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Jak już tu jesteśmy, to od razu chciałbym rozwiać moją drugą wątpliwość, a mianowicie dlaczego we fragmencie kodu:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

wywołanie funkcji odbywa się z gwiazdką przed jej nazwą?



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

Dołączył(a): 12 maja 2014
Posty: 1089
Pomógł: 34

piotrek_194 napisał(a):
wywołanie funkcji odbywa się z gwiazdką przed jej nazwą?
niech mnie ktos poprawi jesli sie myle ale to jest wskaznik na funkcje

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 paź 2014, o 15:28 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27310
Lokalizacja: Szczecin
Pomógł: 1041

RafPe napisał(a):
piotrek_194 napisał(a):
wywołanie funkcji odbywa się z gwiazdką przed jej nazwą?
niech mnie ktos poprawi jesli sie myle ale to jest wskaznik na funkcje


jeśli chodzi o funkcje to gwiazdki można używać ale równie dobrze można jej nie używać - nie ma ŻADNEJ różnicy

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sie 2016, o 21:34 
Offline
Użytkownik

Dołączył(a): 19 gru 2014
Posty: 155
Zbananowany użytkownik

Pomógł: 0

Czy jest szansa na kolejne części poradnika o callbackach?



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

Dołączył(a): 19 gru 2014
Posty: 155
Zbananowany użytkownik

Pomógł: 0

Temat odgrzewam, ponieważ walczę ze zdarzeniami, program zapala i gasi diodę po wciśnięciu przycisku, wykombinowałem poniższy kod, który nawet działa

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


prosiłbym o podpowiedź kiedy i w jakim celu stosować kod oparty na zdarzeniach, czy w tym konkretnym przypadku wykorzystanie zdarzeń (rejestracje itd ) jest zasadne, czy samo wykorzystanie Callbecków nie wystarczy? Czy w tym konkretnym wypadku coś zyskujemy dzięki zdarzeniom?



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: 65 ]  Przejdź na stronę Poprzednia strona  1, 2, 3  Następna strona

Strefa czasowa: UTC + 1


Kto przegląda forum

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