<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl-pl">
<link rel="self" type="application/atom+xml" href="https://forum.atnel.pl/feed.php?f=58&amp;t=11795&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-05-24T22:40:07+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=58&amp;t=11795&amp;mode</id>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2015-05-24T22:40:07+01:00</updated>
<published>2015-05-24T22:40:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11795&amp;p=130041#p130041</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11795&amp;p=130041#p130041"/>
<title type="html"><![CDATA[Re: Callbacki w RTC - powtórka z tematu, czyli?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11795&amp;p=130041#p130041"><![CDATA[
nie ma za co - a w razie czego śmiało pytaj - zawsze chętnie pomogę<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 24 maja 2015, o 22:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[lutekT]]></name></author>
<updated>2015-05-24T19:53:00+01:00</updated>
<published>2015-05-24T19:53:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11795&amp;p=130038#p130038</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11795&amp;p=130038#p130038"/>
<title type="html"><![CDATA[Re: Callbacki w RTC - powtórka z tematu, czyli?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11795&amp;p=130038#p130038"><![CDATA[
Źle się wyraziłem<br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />To tak samo, jakbyśmy wywoływali funkcję tak:<br />Składnia: [ Pobierz ] [ Ukryj ]<br />język c<br />pokazuj_date_czas(&amp;datetime)<br />GeSHi<br /></div><br />Miałem na myśli, że tak to widzi kompilator i wywołuje przesłaną przez nas funkcję taką to właśnie linijką.<br /><br />Po to jest rejestracja funkcji, raz tej, a raz innej.<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 3 minutach ]</span></strong><br /><br />Swoją drogą dzięki za przesłany link. <br /><br />Z przyjemnością powtórzę sobie info o tych wskaźnikach i innych podstawach.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9279">lutekT</a> — 24 maja 2015, o 19:53</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2015-05-24T15:34:02+01:00</updated>
<published>2015-05-24T15:34:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11795&amp;p=130013#p130013</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11795&amp;p=130013#p130013"/>
<title type="html"><![CDATA[Re: Callbacki w RTC - powtórka z tematu, czyli?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11795&amp;p=130013#p130013"><![CDATA[
<div class="quotetitle">lutekT napisał(a):</div><div class="quotecontent"><br />To tak samo, jakbyśmy wywoływali funkcję tak:<br /></div><br />a co to ma wspólnego z:<br /><br /><div class="quotetitle">lutekT napisał(a):</div><div class="quotecontent"><br />To tak samo, jakbyśmy wywoływali funkcję tak:<br /></div><br /><br />????<br /><br />Wywołanie callbacka to nie to samo .... bo skąd w funkcji RTC_EVENT() możesz wiedzieć jaką ktoś nada sobie nazwę tejże funkcji callbackowej ??<br /><br />Zrozum - ja podałem przykład, że tworzę sobie pokazuj_date_czas() , ale ty możesz sobie zrobić funkcję o całkiem innej nazwie np show_datetime() i co ? będziesz przerabiał funkcję biblioteczną RTC_EVENT() żeby zmienić nazwę w jej brzuchu ? To byłoby bez sensu ... dlatego w swoim programie main.c piszesz własną dowolną funkcję i ją REJESTRUJESZ za pomocą funkcji rejstrującej - inaczej mówiąc, dajesz do biblioteki informację, że ona w swojej funkcji RTC_EVENT() ma się posłużyć wskaźnikiem do tej twojej funkcji obojętnie jaką nazwę będzie miała.<br /><br />Wiesz co ? KONIECZNIE obejrzyj sobie poradnik ten konkretnie:<br /><!-- m --><a class="postlink" href="https://www.youtube.com/watch?v=V83w0pu7MVo" >https://www.youtube.com/watch?v=V83w0pu7MVo</a><!-- m --><br /><br />o tym gdzie mówię o &quot;rozdwojeniu jaźni&quot; ... że czasem trzeba myśleć nad projektem nie tak jakbyś sam pisał i sam dla siebie ale trzeba umieć podzielić zadania dla kilku np dwóch zespołów programistów! Tak tak - takie podejście się przydaje nawet gdy SAMEMU dla siebie się programuje, bo daje to dużo większe możliwości<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 24 maja 2015, o 15:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[lutekT]]></name></author>
<updated>2015-05-24T13:31:27+01:00</updated>
<published>2015-05-24T13:31:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11795&amp;p=130000#p130000</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11795&amp;p=130000#p130000"/>
<title type="html"><![CDATA[Callbacki w RTC - powtórka z tematu, czyli?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11795&amp;p=130000#p130000"><![CDATA[
Trochę dostaję pomieszania, dlatego piszę jakby dla siebie, a może i nie tylko.<br /><br />Przekazuję tak jak zrozumiałem temat z pogadanek szanownego Mirka.<br /><br />Widzę w takim porządku:<br /><br />1. Mamy funkcję:<br />[syntax=c]void pokazuj_date_czas(TDATETIME * dt);[/syntax]<br /><br />2. Chcę na nią pokazywać wskaźnikiem rtc_callback.<br />Definiujemy więc ten wskaźnik o takim samym typie zwracanym i argumentach jak nasza funkcja:<br />[syntax=c]static void (*rtc_callback)(TDATETIME *dt);[/syntax]<br /><br />3. Definiujemy funkcję rejestrującą, która będzie inicjowała (ustawiała) wskaźnik przekazaną w argumencie funkcją.<br />[syntax=c]void register_rtc_event_callback(void (*callback)(TDATETIME *dt)) {<br />rtc_callback = callback;<br />}[/syntax]<br /><br />Czyli do naszego wskaźnika rtc_callback (już bez * ) wpisywać będziemy nazwę funkcji callbackowej.<br /><br />Nazwa funkcji jest jednocześnie adresem tejże funkcji. Czyli funkcja rejestrująca ustawia do wskaźnika adres przekazanej funkcji.<br /><br />4. W programie przed main wykorzystujemy funkcję rejestrującą następująco:<br />[syntax=c]register_rtc_event_callback(pokazuj_date_czas);[/syntax]<br />czyli<br />inicjujemy wskaźnik rtc_callback przesłaną funkcją pokazuj_date_czas:<br />[syntax=c]rtc_callback = pokazuj_date_czas ;[/syntax]<br /><br />5. I na koniec, w pętli main wywołujemy funkcję RTC_EVENT().<br />W niej dopiero następuje wywołanie funkcji pokazywanej wskaźnikiem.<br />Po sprawdzeniu oczywiście, czy wskaźnik jest ustawiony:<br />[syntax=c]if (rtc_callback) rtc_callback(&amp;datetime);[/syntax]<br /><br />To tak samo, jakbyśmy wywoływali funkcję tak:<br />[syntax=c]pokazuj_date_czas(&amp;datetime)[/syntax]<br />lub zapewne tak:<br />[syntax=c](*rtc_callback)(&amp;datetime)[/syntax]<br /><br />Koniec wywodu.<br />Musiałem się rozpisać, aby sobie trochę w głowie to poukładać.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9279">lutekT</a> — 24 maja 2015, o 13:31</p><hr />
]]></content>
</entry>
</feed>