No tak, zakręcone przez nazewnictwo i kombinacje ze wskaźnikami powiadacie ? ... no to sorki ale bez wskaźników i bez przejrzystych nazw - mi trudno będzie pokazać callbacka. W ogóle się obawiam że bez wskaźników to w ogóle nie możliwe.
Ja myślę że problem macie gdzieś indziej - nie możecie załapać istoty działania callbacka a jeszcze do tego wplątujecie EVENT.
Tymczasem w pierwszej książce Bluebook pokazuję w sumie prostszy przykład bez EVENT'u - ot samą funkcję do której można callbacka wstawić - SuperDebounce() .... i nie ważne nawet czy do końca ktoś na początku od razu zaskoczy jak tam ona w środku działa - bo to nie ma nic wspólnego z callbackiem.
CALLBACK to możliwość przekazania do jakiejś funkcji wskaźnika do INNEJ funkcji. Jak ktoś tego nie rozumie to ręka do góry i pytania bo żadne przykłady tu nie pomogą na razie. Tu muszą być wskaźniki i nieco bardziej zaawansowane przykłady - tego się nie zrobi na mogającej diodzie LED i _delay_ms()

.... ale żeby to zrozumieć i podejść to najpierw trzeba sporo poćwiczyć i nabrać praktyki ze wskaźnikami - żeby nie było później tekstu - że "tu się odbywają jakieś dziwne kombinacje na wskaźnikach" ...
więc jeszcze raz - na razie opis ogólny i jak mówię jak ktoś nie zrozumie to proszę dopytywać
załóżmy że dostałeś ode mnie zadanie aby napisać mi jakąś funkcję do obsługi KLAWISZA. Ty masz zadbać o to aby wyeliminować drgania styków - mnie to nie interesuje absolutnie i w ogóle nie chcę w ten kod wnikać. Ale stawiam JEDEN warunek, funkcja którą mi napiszesz - ma mieć taką możliwość - żebym to ja w swoim kodzie gdy dostanę mailem od ciebie kod twojej funkcji, mógł wywołać SWOJĄ WŁASNĄ dowolną funkcję ze środka tej twojej - gdy już uznasz - że przyszedł czas na wywołanie akcji naciśnięcia .... rozumiesz to zadanie ?
i ja nie chcę się grzebać w kodzie twojej funkcji pod żadnym pozorem, nie chcę słyszeć od ciebie instrukcji np że wystarczy iż w linii tej i tej wstawisz wywołanie swojej funkcji. NIE, ja tak nie chcę .... Dla ciebie zadanie jest takie - żebyś tak napisał swoją funkcję do obsługi klawisza (nie ważne dla mnie jak - ma tylko działać) .... żeby mogła ona przyjąć jako argument czy jeden z argumentów jakiś WSKAŹNIK - wskaźnik do mojej funkcji.
czyli dostaję np od ciebie CZARNĄ SKRZYNKĘ o nazwie:
Kod:
MySuperKLAWISZ( )
i ja chcę mieć możliwość aby wywołać ją w programie np tak:
Kod:
MySuperKLAWISZ( pin, port, moja_funkcja_obsługi );
czyli TY - tak na prawdę musisz przyjąć wskaźnik do moja_funkcja_obsługi() .... i gdy będzie akcja - to go po prostu wywołać jak dowolną funkcję - przy czym nie interesuje ciebie co w niej będzie.
TO JEST CALLBACK ! Wywołasz bowiem zwrotnie z ciała twojej funkcji jakąś inną - nawet taką, której nie znasz na etapie pisania swojej własnej funkcji do obsługi klawisza. Rozumiesz ? To twój klient czyli ja mirekk36 sam sobie chcę podkładać swoje własne funkcje do super napisanej przez ciebie biblioteki obsługi klawisza.
Pomijam tu specjalnie rejestrację i eventy żeby nie mieszać w głowie. Więc jeśli coś z tego nie jest jasne to PYTAJ i postaraj się zrozumieć tę IDEĘ ok ?
a potem przejdziemy ew do prostych kodów przykładowych.
_________________
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 ]