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

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA w 2025? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 3 kwi 2025, o 16:24


    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: 246
    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: 27366
    Lokalizacja: Szczecin
    Pomógł: 1043

    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: 246
    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: 27366
    Lokalizacja: Szczecin
    Pomógł: 1043

    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: 27366
    Lokalizacja: Szczecin
    Pomógł: 1043

    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: 27366
    Lokalizacja: Szczecin
    Pomógł: 1043

    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: 27366
    Lokalizacja: Szczecin
    Pomógł: 1043

    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: 27366
    Lokalizacja: Szczecin
    Pomógł: 1043

    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: 27366
    Lokalizacja: Szczecin
    Pomógł: 1043

    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: 27366
    Lokalizacja: Szczecin
    Pomógł: 1043

    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: 398
    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: 27366
    Lokalizacja: Szczecin
    Pomógł: 1043

    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: 27366
    Lokalizacja: Szczecin
    Pomógł: 1043

    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 ] [ Zaznacz wszystko ]
    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:  
    cron
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO