<?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=56&amp;t=2783&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2017-03-30T11:32:58+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=56&amp;t=2783&amp;mode</id>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2017-03-30T11:32:58+01:00</updated>
<published>2017-03-30T11:32:58+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=185926#p185926</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=185926#p185926"/>
<title type="html"><![CDATA[Re: No to zaczynamy siłowanie się z Callbackami itp ;)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=185926#p185926"><![CDATA[
<div class="quotetitle">zubik napisał(a):</div><div class="quotecontent"><br />nie bardzo rozumiem jak optymalnie wysyłać dane do eventu, na przykład gdybym chciał zmienić kanał pomiarowy<br /></div><br />No ale to musisz coś sobie zakombinować - przede wszystkim to najpierw poćwicz sobie bez zdarzeń pomiar na wielu kanałach - wtedy wpadniesz sam na pomysł jak <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> ... bo teraz robisz wszystko przecież na jednym kanale który pewnie gdzieś w sekcji INIT przed pętlą główną ustawiłeś w rejestrze ADMUX .... no to jak chcesz teraz kanał zmieniać - nie ważne już czy masz EVENTY czy ich nie masz.<br /><br />Rozumiesz ?<br /><br />Dlatego najpierw bez eventów przygotuj sobie prosty kod w main, który będzie ci mierzył na kilku kanałach<br /><br />a jak wyjdzie to pomyśl jak to zamienić na EVENTY - jeśli nie wymyślisz to zwróć się z problemem na forum<br /><br />ale na ZEUSA - nie doklejaj się do starych archiwalnych wątków - tylko proszę - zakładaj PAN nowy wątek - toż jaki jest sens doklejać się wciąż ? to po co forum wtedy? Chciałbyś czytać jakieś forum na którym byłby TYLKO JEDEN wątek i wszyscy by się do niego doklejali na końcu ? To tak w kwestii wyjaśnienia jak działa forum w ogóle ok?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 30 mar 2017, o 11:32</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jaglarz]]></name></author>
<updated>2017-03-30T10:26:23+01:00</updated>
<published>2017-03-30T10:26:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=185923#p185923</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=185923#p185923"/>
<title type="html"><![CDATA[Re: No to zaczynamy siłowanie się z Callbackami itp ;)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=185923#p185923"><![CDATA[
<!-- l --><a class="postlink-local" href="http://forum.atnel.pl/topic7402.html" >topic7402.html</a><!-- l --><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=471">Jaglarz</a> — 30 mar 2017, o 10:26</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2017-03-28T21:56:46+01:00</updated>
<published>2017-03-28T21:56:46+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=185830#p185830</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=185830#p185830"/>
<title type="html"><![CDATA[Re: No to zaczynamy siłowanie się z Callbackami itp ;)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=185830#p185830"><![CDATA[
a co robi u ciebie ADC_EVENT()? toż bez tego trudno cokolwiek powiedzieć<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 28 mar 2017, o 21:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Hannibal9]]></name></author>
<updated>2017-01-20T19:28:21+01:00</updated>
<published>2017-01-20T19:28:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=180357#p180357</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=180357#p180357"/>
<title type="html"><![CDATA[Re: No to zaczynamy siłowanie się z Callbackami itp ;)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=180357#p180357"><![CDATA[
A mała podpowiedź, odnośnie korzyści przy korzystaniu ze zdarzeń przy obsłudze kilku przycisków.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7324">Hannibal9</a> — 20 sty 2017, o 19:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2017-01-20T17:35:14+01:00</updated>
<published>2017-01-20T17:35:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=180353#p180353</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=180353#p180353"/>
<title type="html"><![CDATA[Re: No to zaczynamy siłowanie się z Callbackami itp ;)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=180353#p180353"><![CDATA[
<div class="quotetitle">Hannibal9 napisał(a):</div><div class="quotecontent"><br />w jakim celu stosować kod oparty na zdarzeniach,<br /></div><br />Im więcej będziesz stosował tym szybciej sam dojdziesz kiedy to bywa przydatne a kiedy inny sposób - bo nie ma jakiegoś jasnego przepisu, że np stosujemy zdarzenia gdy XXX natomiast gdy YYY to nie<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: kilkunastu sekundach ]</span></strong><br /><br /><div class="quotetitle">Hannibal9 napisał(a):</div><div class="quotecontent"><br />Czy w tym konkretnym wypadku coś zyskujemy dzięki zdarzeniom?<br /></div><br />przy jednym przycisku może nie za dużo ale gdy ich będziemy mieć więcej ? ... sam pomyśl<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 20 sty 2017, o 17:35</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Hannibal9]]></name></author>
<updated>2017-01-20T17:02:27+01:00</updated>
<published>2017-01-20T17:02:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=180347#p180347</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=180347#p180347"/>
<title type="html"><![CDATA[Re: No to zaczynamy siłowanie się z Callbackami itp ;)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=180347#p180347"><![CDATA[
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<br /><br />[syntax=c]//testowanie callback-ow na funkcji do obslugi klawisza<br /><br /><br />#include &lt;avr/io.h&gt;<br /><br />#include &quot;KEY_LIB/keys.h&quot;<br /><br />#define LED1 (1&lt;&lt;PD7)<br />#define LED1_TOG PORTD ^= LED1<br /><br />void Event_przycisk(void);                        // funkcja zdarzeniowa np wcisnięcie przycisku<br /><br />void (*moje_miganie_led)(void);                   //wskaźnik do funkcji Callback ktora bedzie wywoływana w zdarzeniu<br /><br />void my_event(void(*zdarzenie)(void)){            // funkcja do rejestracji funkcji zwrotnej<br />moje_miganie_led=zdarzenie;<br />}<br /><br /><br /><br />void miganie_led(void) {                           // funkcja ktora ma sie wykonac po nacisnieciu klawisz<br />        LED1_TOG;<br />}<br /><br />int main(void) {<br /><br />        DDRD |= LED1;                              // DDRD PD7 jako wyjście<br /><br />        key_init();                                //inicjalizacja przycisku<br /><br /><br />        my_event(miganie_led);             //rejestracja funkcji<br /><br />        while(1) {<br /><br />        Event_przycisk();<br /><br />        }<br />}<br /><br /><br />void Event_przycisk(void){<br />static uint16_t key_lock;// key_lock=0<br /><br />         if( !key_lock &amp;&amp; !(PINC &amp; KEY1 ) ) {<br />          key_lock=50000;<br /><br /><br />          moje_miganie_led();<br /><br />         } else if( key_lock &amp;&amp; (PINC &amp; KEY1 ) ) key_lock++;<br />}[/syntax]<br /><br />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?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7324">Hannibal9</a> — 20 sty 2017, o 17:02</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Hannibal9]]></name></author>
<updated>2016-08-15T21:34:22+01:00</updated>
<published>2016-08-15T21:34:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=166107#p166107</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=166107#p166107"/>
<title type="html"><![CDATA[Re: No to zaczynamy siłowanie się z Callbackami itp ;)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=166107#p166107"><![CDATA[
Czy jest szansa na kolejne części poradnika o callbackach?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7324">Hannibal9</a> — 15 sie 2016, o 21:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-10-15T15:28:11+01:00</updated>
<published>2014-10-15T15:28:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=99122#p99122</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=99122#p99122"/>
<title type="html"><![CDATA[Re: No to zaczynamy siłowanie się z Callbackami itp ;)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=99122#p99122"><![CDATA[
<div class="quotetitle">RafPe napisał(a):</div><div class="quotecontent"><br /><div class="quotetitle">piotrek_194 napisał(a):</div><div class="quotecontent">wywołanie funkcji odbywa się z gwiazdką przed jej nazwą?<br /></div> niech mnie ktos poprawi jesli sie myle ale to jest wskaznik na funkcje</div><br /><br />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<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 15 paź 2014, o 15:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[RafPe]]></name></author>
<updated>2014-10-15T15:02:29+01:00</updated>
<published>2014-10-15T15:02:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=99114#p99114</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=99114#p99114"/>
<title type="html"><![CDATA[Re: No to zaczynamy siłowanie się z Callbackami itp ;)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=99114#p99114"><![CDATA[
<div class="quotetitle">piotrek_194 napisał(a):</div><div class="quotecontent"><br />wywołanie funkcji odbywa się z gwiazdką przed jej nazwą?<br /></div> niech mnie ktos poprawi jesli sie myle ale to jest wskaznik na funkcje<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4344">RafPe</a> — 15 paź 2014, o 15:02</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[piotrek_194]]></name></author>
<updated>2014-10-15T13:58:49+01:00</updated>
<published>2014-10-15T13:58:49+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=99102#p99102</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=99102#p99102"/>
<title type="html"><![CDATA[Re: No to zaczynamy siłowanie się z Callbackami itp ;)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=99102#p99102"><![CDATA[
Witam! Dopiero co zaczynam swoją przygodę z callbackami, więc proszę o wyrozumiałość <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Chodzi mi o fragment kodu z GreenBook`a dotyczącego transmisji radiowej 433/868 MHz:<br />[syntax=c]// wskaźnik do funkcji callback dla zdarzenia MAN_EVENT<br />static void (*man_byte_event_callback)(uint8_t bajt, uint8_t key_time);<br /><br />// funkcja do rejestracji funkcji zwrotnej w zdarzeniu MAN_EVENT()<br />void register_man_byte_event_callback(void (*callback)(uint8_t bajt, uint8_t key_time)) {<br />man_byte_event_callback = callback;<br />}<br /><br />// wskaźnik do funkcji callback dla zdarzenia MAN_EVENT<br />static void (*man_str_event_callback)(char * s);<br /><br />// funkcja do rejestracji funkcji zwrotnej w zdarzeniu MAN_EVENT()<br />void register_man_str_event_callback(void (*callback)(char * s)) {<br />man_str_event_callback = callback;<br />}[/syntax]<br />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ą:<br />[syntax=c]if(callback1)... ;<br />if(callback2)... ;[/syntax]<br />Jak już tu jesteśmy, to od razu chciałbym rozwiać moją drugą wątpliwość, a mianowicie dlaczego we fragmencie kodu:<br />[syntax=c]if(man_str_event_callback) (*man_str_event_callback)(bfr);[/syntax]<br />wywołanie funkcji odbywa się z gwiazdką przed jej nazwą?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3505">piotrek_194</a> — 15 paź 2014, o 13:58</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-09-26T19:16:31+01:00</updated>
<published>2014-09-26T19:16:31+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=96774#p96774</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=96774#p96774"/>
<title type="html"><![CDATA[Re: No to zaczynamy siłowanie się z Callbackami itp ;)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=96774#p96774"><![CDATA[
<div class="quotetitle">MrNew napisał(a):</div><div class="quotecontent"><br />Ale ty to masz muskuły!!!<br /></div><br /><br />Każdy ma takie jak już się zmierzy z callbackami <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> wtedy już łatwiej<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 26 wrz 2014, o 19:16</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Mystik]]></name></author>
<updated>2014-08-13T14:56:35+01:00</updated>
<published>2014-08-13T14:56:35+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=91383#p91383</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=91383#p91383"/>
<title type="html"><![CDATA[Re: No to zaczynamy siłowanie się z Callbackami itp ;)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=91383#p91383"><![CDATA[
Ok. Już wszystko wiem.<br /><br />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ć.<br />Pozmieniałem i dopasowałem do swoich potrzeb.<br /><br />pozdrawiam<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=5385">Mystik</a> — 13 sie 2014, o 14:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Mystik]]></name></author>
<updated>2014-08-12T17:40:38+01:00</updated>
<published>2014-08-12T17:40:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=91258#p91258</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=91258#p91258"/>
<title type="html"><![CDATA[Re: No to zaczynamy siłowanie się z Callbackami itp ;)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=91258#p91258"><![CDATA[
Witam Wszystkich Serdecznie!<br /><br />Fajne te Callbacki. Dzięki za przybliżenie tematu.<br /><br />Mam jeden problem, ale to już konkretną biblioteką do obsługi Enkodera opisaną szczegółowo tutaj:<br /><br /><!-- m --><a class="postlink" href="http://mirekk36.blogspot.com/2013/04/encoder-avr-callbackow-ciag-dalszy-cz2.html" >http://mirekk36.blogspot.com/2013/04/en ... y-cz2.html</a><!-- m --><br /><br />Ze względu na rodzaj enkodera &quot;wynik&quot; zmienia się co drugi klik, ale to mniejsza.<br />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.<br /><br />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.<br /><br />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.<br /><br />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.<br /><br />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?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=5385">Mystik</a> — 12 sie 2014, o 17:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Arek1111111111]]></name></author>
<updated>2014-08-07T19:54:53+01:00</updated>
<published>2014-08-07T19:54:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=90600#p90600</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=90600#p90600"/>
<title type="html"><![CDATA[Re: No to zaczynamy siłowanie się z Callbackami itp ;)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=90600#p90600"><![CDATA[
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 &quot;działu&quot; 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?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3349">Arek1111111111</a> — 7 sie 2014, o 19:54</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[qutrit]]></name></author>
<updated>2014-05-08T14:03:42+01:00</updated>
<published>2014-05-08T14:03:42+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=80554#p80554</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=80554#p80554"/>
<title type="html"><![CDATA[Re: No to zaczynamy siłowanie się z Callbackami itp ;)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=80554#p80554"><![CDATA[
Witam<br />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. <br />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.<br />Starałem się uniknąć błędów w rozumowaniu. Gdyby jednak się pojawiły to oczywiście proszę je wytykać bez żadnych skrupułów. <br />Pozdrawiam. <br /><br /><a href="http://forum.atnel.pl/_obrazki/o/766/45e23c047076da671abc98aef2705888.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/766/45e23c047076da671abc98aef2705888.jpg" alt="Obrazek" /></a><a href="http://forum.atnel.pl/_obrazki/o/766/b469924ee004f585f477acf4eb1ed7b5.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/766/b469924ee004f585f477acf4eb1ed7b5.jpg" alt="Obrazek" /></a><a href="http://forum.atnel.pl/_obrazki/o/766/777195810b74efe124ff768e0128a338.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/766/777195810b74efe124ff768e0128a338.jpg" alt="Obrazek" /></a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=766">qutrit</a> — 8 maja 2014, o 14:03</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-05-19T04:52:58+01:00</updated>
<published>2013-05-19T04:52:58+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=37288#p37288</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=37288#p37288"/>
<title type="html"><![CDATA[Re: No to zaczynamy siłowanie się z Callbackami itp ;)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=37288#p37288"><![CDATA[
na tym że funkcja jest nieblokująca czyli wykona tylko to co ma zrobić i nie używa bron boze delayow albo innych opoznien<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 19 maja 2013, o 04:52</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[TomZiom]]></name></author>
<updated>2013-05-19T00:34:18+01:00</updated>
<published>2013-05-19T00:34:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=37285#p37285</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=37285#p37285"/>
<title type="html"><![CDATA[Re: No to zaczynamy siłowanie się z Callbackami itp ;)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=37285#p37285"><![CDATA[
Na czym polega wymieniana wcześniej owa &quot;Przezroczystość&quot; funkcji?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1010">TomZiom</a> — 19 maja 2013, o 00:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-04-16T15:15:12+01:00</updated>
<published>2013-04-16T15:15:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=34464#p34464</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=34464#p34464"/>
<title type="html"><![CDATA[Re: No to zaczynamy siłowanie się z Callbackami itp ;)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=34464#p34464"><![CDATA[
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. <br /><br />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++) <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />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.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 16 kwi 2013, o 15:15</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Anonymous]]></name></author>
<updated>2013-04-16T14:31:57+01:00</updated>
<published>2013-04-16T14:31:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=34461#p34461</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=34461#p34461"/>
<title type="html"><![CDATA[Re: No to zaczynamy siłowanie się z Callbackami itp ;)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=34461#p34461"><![CDATA[
No u mnie niestety się to miesza <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" />, tj. nie ogarniam tak tego na poziomie atomowym jak wielu kolegów. <br />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.<br /><br />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ę.<br /><br />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.<br />Ewentualnie slidery na zasadzie sprzężenia zwrotnego, czyli za pomocą jakiś &quot;potencjometrów&quot; można było sobie regulować kolor, albo wpisując z ręki kod koloru &quot;potencjometry&quot; ustawiały się na zadanych miejscach. <br />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ść &quot;interfejsu&quot; jego &quot;uchwytów&quot;.<br /><br />Tj. cały czas mam przed oczami analogie programowania w IDE Borlanda C++ okienkowych aplikacji, bo na tym się kiedyś uczyłem.<br /><br />Oj, zdaje mi się, że musiał bym mieć to jakoś obrazkowo wyjaśnione <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" />.....niby rozumiem, ale nie do końca.<p>Statystyki: Napisane przez Gość — 16 kwi 2013, o 14:31</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-04-16T14:27:16+01:00</updated>
<published>2013-04-16T14:27:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=34459#p34459</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=34459#p34459"/>
<title type="html"><![CDATA[Re: No to zaczynamy siłowanie się z Callbackami itp ;)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=34459#p34459"><![CDATA[
rezasurmar --&gt; 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 <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 16 kwi 2013, o 14:27</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Anonymous]]></name></author>
<updated>2013-04-16T14:00:15+01:00</updated>
<published>2013-04-16T14:00:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=34453#p34453</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=34453#p34453"/>
<title type="html"><![CDATA[Re: No to zaczynamy siłowanie się z Callbackami itp ;)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=34453#p34453"><![CDATA[
Ja rozumuję <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> eventy w ten sposób......<br /><br />Zamiast zajmować procesor czekaniem na jakieś wydarzenie, czekam tylko na flagę i on dostając flagę obsługuję już potem całe wydarzenie.<br />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.<br />Miałem tak odbierając dane z końcówką CF LR i dopiero wtedy &quot;obrabiałem&quot; bufor w main().<p>Statystyki: Napisane przez Gość — 16 kwi 2013, o 14:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[qutrit]]></name></author>
<updated>2013-04-16T13:51:14+01:00</updated>
<published>2013-04-16T13:51:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=34450#p34450</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=34450#p34450"/>
<title type="html"><![CDATA[Re: No to zaczynamy siłowanie się z Callbackami itp ;)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=34450#p34450"><![CDATA[
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 ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=766">qutrit</a> — 16 kwi 2013, o 13:51</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-04-12T18:04:18+01:00</updated>
<published>2013-04-12T18:04:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=34203#p34203</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=34203#p34203"/>
<title type="html"><![CDATA[Re: No to zaczynamy siłowanie się z Callbackami itp ;)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=34203#p34203"><![CDATA[
a dlaczego rzekomej ? <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> czy nie zauważacie panowie że tak przebiegał naturalny rozwój języka C do C++<br /><br />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<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 12 kwi 2013, o 18:04</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Wrangler]]></name></author>
<updated>2013-04-12T17:26:05+01:00</updated>
<published>2013-04-12T17:26:05+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=34198#p34198</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=34198#p34198"/>
<title type="html"><![CDATA[Re: No to zaczynamy siłowanie się z Callbackami itp ;)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=34198#p34198"><![CDATA[
Czy czasem w tych callbackach nie ma tutaj rzekomej analogii do programowania obiektowego? <br /><br />funkcja <span style="color: #408000"><em>moj_klawisz</em></span> pełni rolę obiektu i na rzecz tej funkcji (obiektu) <span style="color: #408000"><em>moj_klawisz</em></span> można wywołać inne funkcje (metody) należące do klasy obiektu <span style="color: #408000"><em>moj_klawisz</em></span>?<br /><br />Tak to właśnie odbieram po dłuższej analizie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=223">Wrangler</a> — 12 kwi 2013, o 17:26</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-04-12T13:39:41+01:00</updated>
<published>2013-04-12T13:39:41+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=34171#p34171</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=34171#p34171"/>
<title type="html"><![CDATA[Re: No to zaczynamy siłowanie się z Callbackami itp ;)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2783&amp;p=34171#p34171"><![CDATA[
wojtek1000 --&gt; bardzo dobrze to zrozumiałeś <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> wymieniłeś kilka zalet callbackowości <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 12 kwi 2013, o 13:39</p><hr />
]]></content>
</entry>
</feed>