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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2012-08-28T11:42:56+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=1432&amp;mode</id>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-08-28T11:42:56+01:00</updated>
<published>2012-08-28T11:42:56+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13879#p13879</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13879#p13879"/>
<title type="html"><![CDATA[Re: Problem z prawidłowym użyciem UART_getc()]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13879#p13879"><![CDATA[
troszkę się jeszcze gubicie panowie z tymi callbackami i zdarzeniami...<br /><br />ale to już niestety odeślę do drugiej książki tak będzie łatwiej a tu jeszcze raz przypomnę schemat jaki staram się przekazać.<br /><br />1. zdarzenie EVENT() - to funkcja która obsługuje każdy przelot w pętli głównej while() i to wewnątrz niej dzieją się takie rzeczy jak sprawdzanie flag, ich zerowanie i nie wiadomo co tam jeszcze. Mnie jako programistę nie interesuje warstwa sprzętowa - a flaga już ściśle wiąże się ze sprzętem <br /><br />2. to właśnie zdarzenie EVENT() - ma za zadanie wywołać funkcję zwrotną użytkownika, gdy zajdzie taka potrzeba i JEŻELI ..... jeżeli wcześniej użytkownik w ogóle zarejestruje taką swoją funkcję zwrotną w zdarzeniu. Bo jeśli nie zarejestruje to mnie jako programistę nadal nie obchodzi sprzęt i nie może się zdarzyć że przypadkiem przez to że nie zarejestrowałem swojej funkcji - to coś się &quot;sypnie&quot; w zdarzeniu&quot;. Innymi słowy mówiąc, zdarzenie można zapuścić i będzie robiło puste/jałowe przebiegi do czasu aż ja programista nie zarejestruję swojej funkcji callbackowej. Co więcej. Mogę ją także w locie bez obaw wyrejestrować i zarejestrować inną - np w innej części programu albo na innej pozycji pracy MENU itp itd<br /><br />3. powyższe wymaga zatem napisania funkcji rejestrującej naszego callbacka - tak aby sobie ułatwić życie a nie później znowu musieć się wgryzać w kod źródłowy zdarzenia i dowiadywać się pod jaki wskaźnik mam się podłączyć<br /><br />reasumując - zdarzenie EVENT() robi mi taką kapsułę otaczającą i ukrywającą przede mną to co dzieje się ze sprzętem - a jednocześnie potrafi dla mnie pracować bo w określonym momencie wywoła DOWOLNĄ moją funkcję zwrotną jaką ja w nim zarejestruję....<br /><br />No jeśli to nie jest do końca jasne - to mam nadzieję, że od pierwszych ćwiczeń w drugiej książce zacznie coś stawać się jasne i przejrzyste - byleby nie opuszczać rozdziałów np z powodu, że &quot;aaaa tam podczerwień mnie nie interesuje, od razu pójdę dalej&quot; .... bo też stopniowo to tłumaczę tzn pokazuję na przykładach i akcja powoli się rozwija <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> żeby prawie już w pełni nastąpiła kulminacja w ostatnim rozdziale tego thrillera <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> — 28 sie 2012, o 11:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2012-08-28T07:55:21+01:00</updated>
<published>2012-08-28T07:55:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13869#p13869</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13869#p13869"/>
<title type="html"><![CDATA[Re: Problem z prawidłowym użyciem UART_getc()]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13869#p13869"><![CDATA[
[syntax=c]void uart_event(void(*callback_fun)(), char * ); //wskaźnik do funkcji to (*fun)<br />uart_event(uart_gets, rxdata); //wskaźnik to nazwa funkcji, parametry trzeba przekazać osobno<br />void uart_event(void (*callback_fun)(), char* buffer)<br />{<br />   if (flag) callback_fun(buffer);<br />        LCD_string(buffer); //buffer nie rxdata raczej<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 28 sie 2012, o 07:55</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-08-26T15:41:27+01:00</updated>
<published>2012-08-26T15:41:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13743#p13743</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13743#p13743"/>
<title type="html"><![CDATA[Re: Problem z prawidłowym użyciem UART_getc()]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13743#p13743"><![CDATA[
No ale właśnie widać, że nawet ładnie ci to idzie i coraz lepiej - pomimo że jak się nieraz zabierasz za coś od nowa i masz kłopot to - zwykle troszkę chaotycznie jeszcze postępujesz i chyba obawiasz się że ciężko będzie - to sam zobacz jak niedużo czasu upłynęło odkąd wyrażałeś swoje obawy o zrozumienie RS232 - a już jak w miarę daleko jesteś <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> ..... do wszystkiego się uda dojść<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 26 sie 2012, o 15:41</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-08-26T13:08:24+01:00</updated>
<published>2012-08-26T13:08:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13728#p13728</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13728#p13728"/>
<title type="html"><![CDATA[Re: Problem z prawidłowym użyciem UART_getc()]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13728#p13728"><![CDATA[
<div class="quotetitle">Antystatyczny napisał(a):</div><div class="quotecontent"><br />Ok, czas na rozważania teoretyczne. Mam zbudować funkcję, która zareaguje na flagę, pobierze dane z bufora cyklicznego, a na koniec wywoła funkcję, którą przekażę w parametrze własnie budowanej funkcji(w moim przypadku będzie to LCD_string()). Dobrze rozumiem ideę callback'a?<br /></div><br /><br />O ile dobrze zrozumiałem to pewnie ideę samego callbacka w jakimś zakresie już rozumiesz jak wynika z tych rozważań teoretycznych, ale na pewno daleko jeszcze od tego do zdarzeń....<br /><br />zatem nie ciągnijcie mnie panowie już za język dalej jeśli chodzi o te kwestie bo to nieco bardziej abstrakcyjny temat hmm abstrakcyjna warstwa programu i aby tu się dobrze porozumiewać to wolałbym abyś miał to co teraz robisz dobrze opanowane plus chociaż trochę przykładów jednak z drugiej książki. I znowu - nie chodzi mi o to aby ją na siłę wciskać - jednak podam tu też pewną sugestię ogólną:<br /><br />zdarzenie to taki rodzaj funkcji, która wykonuje się na podstawie zdarzenia sprzętowego (np przerwanie/flaga, sygnał z jakiegoś wejścia/ z ADC itp itp) .... Można powiedzieć że ona niejako musi potrafić wciąż monitorować te stany ale też zdarzenie powinno być tak skonstruowane aby można było je wykorzystać w dowolnej innej funkcji, a zatem nie może być powiązane z żadną lokalną funkcją bazową hmmm no np tą w której ją testujemy itp ....<br /><br />przy takiej konstrukcji zdarzenie np RS232 można odpalać sobie w DOWOLNEJ innej funkcji/podprogramie na IDENTYCZNEJ zasadzie. (dotyczy tzn powinno to dotyczyć wszystkich zdarzeń a nie tylko RS232) .... I teraz najważniejsze. Dzięki wskaźnikom można implementować na każdym poziomie użycia zdarzenia inną obsługę dzięki callbackom .... tzn ... hmmm w zasadzie taka konstrukcja zaczyna przypominać prawie OBIEKT z języka wyższego poziomu jak np C++, gdzie odpowiednikiem metod są właśnie rejestrowane callbacki. Różni się to od obiektówki już tylko tym, że tu musimy ręcznie dbać o implementację metod i propertiesów <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> takich zdarzeń .... Jednak podstawową zaletą takiego postępowania jest przepiękna możliwość odizolowania w programach własnych warstwy abstrakcji od warstwy fizycznej - a pewnie tu i tam słyszeliście, że tak się powinno pisać programy w C. Tyle tylko że na pewnym forum ele... ludzie wpadają , pochwalą się, że tak trzeba ale pokażcie mi gdzieś - żeby postarali się to komuś później wytłumaczyć? z tym już jest dużo gorzej. I nie tylko dlatego że oni nie chcą czy się mądrzą - ale takie tłumaczenie to nie chop siup .... a jak ktoś się zabiera za to w 2-3 zdaniach na forum - to właśnie - wyjdzie mniej więcej to co ja tu wyżej napisałem.... tylko jest jedna różnica .... ja postarałem się jednak spisać wszystko w postaci książki i znowu panowie to nie jest książka o jakichś tam tylko fajnych czy mniej fajnych projekcikach (chociaż i tylko z tego punktu widzenia na pewno każdy znajdzie chociaż ze 2-3 rzeczy/biblioteki dla siebie) .... ważne jest to że na takich przykładach staram się właśnie opowiadać i przemycać innym do podświadomości takie postępowanie jak opisuję wyżej.... Robię więc to niejako &quot;po kryjomu&quot; bez opisywania ton teorii - a raczej na praktycznych przykładach - ot takie mam pomysły i co ważne one się sprawdzają jak ktoś podąża takim moim tokiem rozumowania. Sprawdzone na kursach naziemnych <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> więc wiem co mówię to nie tylko moje wymysły.<br /><br />wiem wiem .... może troszkę zaszalałem teraz z tłumaczeniem .... ale może dlatego ten kto nie miał w ręku drugiej książki w ogóle uzna to za jakieś herezje i czarną magię - ale mam nadzieję, że tym wytłumaczyłem dlaczego wolałbym rozmawiać o zdarzeniach z kimś kto ma tę pozycję w ręku - ponieważ wtedy też pojawią się CAŁKIEM inne pytania i tu już będę mógł wskoczyć śmiało w tok rozumowania bez szkody dla pytającego <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />a i tak dodam, że na tym etapie tzn drugiej książki nie udało mi się już płynnie przedstawić takich mechanizmów jak podmianę &quot;w locie&quot; metod dla takich obiektów oraz dlaczego to może być ważne a przede wszystkim NIESAMOWICIE przydatne .... ale w ostatnim rozdziale podsumowującym całość jest to zasygnalizowane i w kolejnej książce możecie się spodziewać rozwinięcia .....<br /><br />ale też pewnie i niektórzy już na podstawie kilku dodatkowych pytań do mnie będą w stanie zacząć sami z tego korzystać .... a to już właśnie jest to co tygrysy lubią najbardziej <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> jeśli chodzi o C .....  <br /><br />czy to wyczerpuje wszystkie zagadnienia i ciekawostki technik programowania ? na pewno nie - ale analizując kody rozdziału o warstwach na LCD i obsługi wielowątkowości na takim przykładzie i połączenie zdarzeń to już będzie 70-80% czego nam potrzeba na co dzień ....<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 26 sie 2012, o 13:08</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-08-26T09:27:01+01:00</updated>
<published>2012-08-26T09:27:01+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13715#p13715</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13715#p13715"/>
<title type="html"><![CDATA[Re: Problem z prawidłowym użyciem UART_getc()]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13715#p13715"><![CDATA[
<div class="quotetitle">Antystatyczny napisał(a):</div><div class="quotecontent"><br />Ok, to walczę dalej. Największym problemem będzie dla mnie stworzenie dobrego callback'a.<br /></div><br /><br />to też na początek popróbuj bez callbacka - tylko z &quot;ręcznym&quot; pobieraniem danych z buforów cyklicznych na żądanie ... jak to będzie ci wychodziło i zobaczysz zalety takiego podejścia do komunikacji RS232 to wtedy możesz to zacząć obudowywać w paczki zwane zdarzeniami i rurki zwrotne zwane callbackami <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> — 26 sie 2012, o 09:27</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-08-26T09:15:55+01:00</updated>
<published>2012-08-26T09:15:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13712#p13712</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13712#p13712"/>
<title type="html"><![CDATA[Re: Problem z prawidłowym użyciem UART_getc()]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13712#p13712"><![CDATA[
<div class="quotetitle">Antystatyczny napisał(a):</div><div class="quotecontent"><br />... a zerknąłeś na moją obsługę przerwania? Idę w dobrym kierunku?<br /></div><br /><br />Tak - teraz w bardzo dobrym <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> — 26 sie 2012, o 09:15</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-08-26T09:06:54+01:00</updated>
<published>2012-08-26T09:06:54+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13708#p13708</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13708#p13708"/>
<title type="html"><![CDATA[Re: Problem z prawidłowym użyciem UART_getc()]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13708#p13708"><![CDATA[
<div class="quotetitle">Antystatyczny napisał(a):</div><div class="quotecontent"><br />Hmm, mam pytanie... Dopiero teraz zwróciłem uwagę na fakt, że w obsłudze przerwania deklarowana jest zmienna lokalna data i tmp_head. Żadna z nich nie jest inicjalizowana, a kompilator nie wywala warningów. Pamiętam, że kiedyś deklarowałem jakąś zmienną lokalną i kompilator natychmiast zwrócił mi uwagę na fakt, że jej nie inicjalizuję. Od czego zależy jak zareaguje kompilator na zmienną z przypadkową zawartością?<br /></div><br /><br />No a jak myślisz ? <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />pokażę ci trzy przypadki<br /><br />1.<br /><br />[syntax=c]void fun(void) {<br /><br />   uint8_t ala;<br /><br />   ala=5;<br />   PORTA=ala;<br /><br />}[/syntax]<br /><br /><br />2.<br /><br />[syntax=c]void fun(void) {<br /><br />   uint8_t ala;<br /><br />   PORTA=ala;<br /><br />}[/syntax]<br /><br /><br />3.<br /><br />[syntax=c]void fun(void) {<br /><br />   uint8_t ala;<br /><br />   if( 5 == ala ) PORTA=20;<br /><br />}[/syntax]<br /><br />Sam je przetestuj <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> przecież nawet nie trzeba tego wgrywać do procka, tylko zapuścić końpilację <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> i zobacz w których przypadkach kompilator nie będzie płakał a w których ew będzie płakał. Myślę że po tym już ci się rozjaśni raz na zawsze to pytanie które zadałeś <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> — 26 sie 2012, o 09:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-08-26T07:57:21+01:00</updated>
<published>2012-08-26T07:57:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13704#p13704</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13704#p13704"/>
<title type="html"><![CDATA[Re: Problem z prawidłowym użyciem UART_getc()]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13704#p13704"><![CDATA[
<div class="quotetitle">GwynBleidD napisał(a):</div><div class="quotecontent"><br />mirku, widzisz... Nie dobrnąłem do tego jeszcze w Twojej książce, a do głowy przychodzi mi tylko schemat gdzie na sztywno decydujemy czy używamy obu znaków (CR i LF), czy tylko jednego. Popatrzę w książce i zobaczę, może coś odkryję co mi nową lampkę w umyśle zaświeci <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /></div><br /><br />Dlatego polecam LF pozbywać się jako śmiecia w przerwaniu, a CR dopiero podczas pobierania stringu z bufora cyklicznego. I wtedy uwierz mi, że nie ważne jest jak nadaje druga strona - czy używa dwóch znaków CRLF czy tylko jednego CR .... zawsze to będzie działać.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 26 sie 2012, o 07:57</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-08-25T14:14:44+01:00</updated>
<published>2012-08-25T14:14:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13648#p13648</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13648#p13648"/>
<title type="html"><![CDATA[Re: Problem z prawidłowym użyciem UART_getc()]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13648#p13648"><![CDATA[
aha to o parsowaniu masz jeszcze też fajny przykład w rozdziale o UDP przy okazji Ethernetu w książce - wprawdzie to ethernet ale nie ważne - parsowanie to parsowania - zawsze jest takie same tzn podobna zasada<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 25 sie 2012, o 14:14</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-08-24T22:36:32+01:00</updated>
<published>2012-08-24T22:36:32+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13621#p13621</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13621#p13621"/>
<title type="html"><![CDATA[Re: Problem z prawidłowym użyciem UART_getc()]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13621#p13621"><![CDATA[
To nie o to chodzi - ale jak ci teraz podpowiem tak:<br /><br />1. w przerwaniu zrób eleiminację zbędnych znaków i info dla EVENT'a (zdarzenia)<br />2. w Zdarzeniu obsłuż pobieranie ramek i stosownych flag dbając aby było w pełni nieblokujące<br />3. przygotuj sobie funkcję typu callback do zarejestrowania własnych zdarzeń<br />4. przygotuj prototyp funkcji dla użytkownika<br />5. odpalaj już sobie na końcu wygodnie zdarzenie w pętli głównej while<br />6. a parsowanie danych wykonuj we własnej funkcji użytkownika<br />7. jednocześnie zrób tak aby użytkownik mógł sobie rejestrować callbacka, innego dla dowolnej funkcji w całym programie<br /><br />to co ci to da teraz ? - czy może mam każdy z podpunktów tu rozpisać ?<br /><br />czy to oznacza że można TYLKO tak ??? nie da rady prościej ktoś zapyta ???? a ja odpowiem, że tak jak napisałem to jest najprościej .... a to co ty tutaj teraz robisz to dopiero jest komplikacja ..... <br /><br />więc sam widzisz - że można mieć jednak różne podejście do tego samego problemu prawda ? I chyba nie wątpisz że aby omówić kilka z powyższych punktów to warto a nawet trzeba się po drodze jeszcze kilku innych rzeczy dowiedzieć nie mówiąc już o lepszym przetrenowaniu wskaźników .... a prowadzę cię przez to w końcowych rozdziałach tej książki którą masz - oraz w pierwszych aż do ostatniego rozdziału drugiej<br /><br />Ja mam swoją wizję jak podać zjadliwie te wiadomości żeby nie było później że to skomplikowany sposób - i już co najmniej kilku kolegów na tym forum może ci podpowiedzieć - że warto było przejść tą drogę - bo z tego sposobu już korzystają chociaż teraz na spokojnie już we własnych modyfikacjach. Najważniejsze było załapać ideę.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 24 sie 2012, o 22:36</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-08-24T10:07:02+01:00</updated>
<published>2012-08-24T10:07:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13549#p13549</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13549#p13549"/>
<title type="html"><![CDATA[Re: Problem z prawidłowym użyciem UART_getc()]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13549#p13549"><![CDATA[
Nie trzeba żadnego kompromisu to co opisałem <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> ten sposób a w całości w jednej z form podany w ostatnim rozdziale drugiej książki .... a tu podaję ogólne zasady ..... daje to że NIC ci się nie SKLEI <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />Panie kochany jak to jest tak zorganizowane jak ci mówiłem to możesz wysyłać do procka swoje polecenia AT (tu troszkę zarzartuję ale) ... z prędkością światła <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />Nie rozumiesz na razie podstawowej IDEI .... no właśnie ale jak ją tu wytłumaczyć skoro w książce specjalnie na to  poświęciłem CAŁY JEDEN SPORY rozdział .....<br /><br />pomimo to w skrócie<br /><br />taka flaga reagująca na CR mówi ci ile masz w buforze cyklicznym linii ze swoimi komendami <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> .... więc co się sklei jeśli będziesz pobierał każdą z nich z osobna po kolei do znaku CR i go wtedy eliminował ?<br /><br />Zrozum to nie jest nawet jakiś mój prywatny pomysł ..... takie mechanizmy są stosowane w transmisji ASCII od chyba tak dawna jak istnieje RS232 - a sprawdź sobie w necie jak dawno ten standard został wymyślony. Więc ja tu nie odkrywam ameryki - ale też dlatego gorąco polecam książkę widząc takie jeszcze spore niezrozumienie tego zagadnienia i się nie dziwię też do końca bo wszyscy tu mieszają pojęcia <br /><br />parsowania danych z ich odbieraniem - czyli z oddzieleniem warstwy fizycznej aplikacji od warstwy tzw abstrakcyjnej, która już nie jest w żaden sposób związana ze sprzętem. A do tego warto dążyć w swoich programach - i cała druga książka to kontynuacja przekazywania wiedzy w tym zakresie ....<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 24 sie 2012, o 10:07</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-08-24T09:36:53+01:00</updated>
<published>2012-08-24T09:36:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13538#p13538</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13538#p13538"/>
<title type="html"><![CDATA[Re: Problem z prawidłowym użyciem UART_getc()]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13538#p13538"><![CDATA[
<div class="quotetitle">GwynBleidD napisał(a):</div><div class="quotecontent"><br />Niestety nie zadziała to dobrze, gdy na raz dostaniesz 2 linie danych. Dlatego moim zdaniem najlepiej jest usuwać te znaki nie w funkcji odczytującej z UART, ale tuż przed wyświetleniem na LCD.<br /></div><br /><br />I skoro pojawia się już jakiś konkretny pomysł to mogę poddać sugestię. To nie jest dobre rozwiązanie - jeszcze raz przypomnę nie warto i wręcz nie należy po stokroć przesyłać stringów zawierających znaki CR LF - i pozbywać się ich dopiero w ostatecznych funkcjach ..... to niestety jest najgorsze co może być..... ponieważ nagle 50% twojego programu podporządkowane jest pilnowaniu CR LF. Takich sytuacji trzeba unikać jak ognia. Załatwia się to na najniższym poziomie. A gdzie jest najniższy poziom ????<br /><br />toż głupi znak LF kompletnie do niczego nie potrzebny można pomijać już na etapie samego przerwania. Wtedy CR jako znak końca linii w buforze cyklicznym może być usuwany o piętro wyżej czyli w czymś co zabiera linię z tego bufora czyli w jakiejś funkcji gest_string()..... <br /><br />ta funkcja MUSI hmmm powinna przynajmniej <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> już dostarczać CZYSTY C-String <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> a nie znowu zapełniony jakimiś chwastami CR albo LF . A już na pewno nie powinna dostarczać pociętego czy poszatkowanego stringa.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 24 sie 2012, o 09:36</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-08-23T20:14:17+01:00</updated>
<published>2012-08-23T20:14:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13489#p13489</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13489#p13489"/>
<title type="html"><![CDATA[Re: Problem z prawidłowym użyciem UART_getc()]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13489#p13489"><![CDATA[
<div class="quotetitle">Antystatyczny napisał(a):</div><div class="quotecontent"><br />Niestety nie mam pomysłu na to, by zautomatyzować tę funkcję, by odrzucała również znak LF. Nie wiem, rozłożyłem ręce.<br /></div><br /><br />Ok rozumiem, ale mam nadzieję że nie poprosisz teraz aby przekopiować ci tutaj rozwiązanie, które leży na tym forum ? żeby tą funkcję zautomatyzować trzeba ją napisać całkiem inaczej a ty się upierasz przy swojej wersji - no więc ja już nie jestem w stanie nic dodać w tym temacie niestety.... ale życzę powodzenia - na pewno uda ci się za jakiś czas ją zmienić żeby było ok....<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 23 sie 2012, o 20:14</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-08-22T22:40:03+01:00</updated>
<published>2012-08-22T22:40:03+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13380#p13380</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13380#p13380"/>
<title type="html"><![CDATA[Re: Problem z prawidłowym użyciem UART_getc()]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13380#p13380"><![CDATA[
Heh - ty mnie źle zrozumiałeś - ja nie pomijałem celowo żadnych informacji dla początkujących .....<br /><br />po prostu chciałem pokazać obsługę odbierania stringów w PEŁNEJ KRASIE ale już z użyciem ZDARZEŃ (EVENTS) .... a tego nie mogłem pokazać w pierwszej książce zanim nie zrobiłbym nawet wprowadzenia do takich zagadnień. Pod koniec pierwszej właśnie się to pojawia .... a w drugiej książce - także celowo ten rozdział jest na samym końcu książki a nie na początku - bo na początku stopniowo coraz bardziej wprowadzam czytelnika po kolei .... w tą tematykę .... a na końcu korzystamy już z tego w pełni i dzięki temu - odbieranie i parsowanie danych działa po prostu &quot;dobrze&quot;<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 22 sie 2012, o 22:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-08-22T22:01:25+01:00</updated>
<published>2012-08-22T22:01:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13366#p13366</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13366#p13366"/>
<title type="html"><![CDATA[Re: Problem z prawidłowym użyciem UART_getc()]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13366#p13366"><![CDATA[
Twoja funkcja polegnie wcale nie ze względu na jakieś zachcianki jakiegoś programisty a chociażby ze względu na różne standardy. Czasem bowiem same terminale posługują się albo tylko CR, ale czase CRLF itd itp<br /><br />to po pierwsze.....<br /><br />a po drugie to mam nadzieję, że rozumiesz, że ambicja nie ma tu nic do rzeczy - bo na etapie nauki podstaw - nie chodzi o to żeby budować coś na zasadzie domku z kart i to jeszcze podczas silnego wiatru bo taką masz ambicję. Co więcej jeszcze się upierać aby ktoś ci podpowiadał jak to zrobić bo ty wierzysz że to dobra droga. Ja tam zawsze jak coś poznaję a mam taką możliwość to lubię podpatrzeć najpierw jak to robią inni, tzn wiele różnych rozwiązań..... I wtedy jest dopiero czas na ambicję - na podstawie podstawowych informacji budować coś własnego ....<br /><br />No! chyba że człowiek zabiera się za oprogramowanie modułu do którego jeszcze nikt nie zrobił żadnych przykładów albo ciężko je znaleźć..... Tyle że przy podstawowej jeszcze wiedzy z samego zakresu C pewnie się nie zdziwisz że zajmie ci to X+Y+Z więcej czasu ..... A z kolei sam mówisz że wciąż masz go mało na naukę - zatem na końcu sam sobie trochę jakby zaprzeczasz ....<br /><br />Na koniec dodam, że i tak to rozwiązanie z tego wątku, który dostałeś nie jest hmmm jakby to powiedzieć idealne. Jakoś działa - ale próba robienia w oparciu o nie dalszych większych programów to jak chodzenie po polu minowym <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />dlatego postaraj się je obejść szybciej i jak będziesz znał ścieżki - to wtedy przyjdzie ew czas na drugą książkę - o ile jeszcze będzie potrzebna oczywiście.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 22 sie 2012, o 22:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-08-22T20:11:33+01:00</updated>
<published>2012-08-22T20:11:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13345#p13345</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13345#p13345"/>
<title type="html"><![CDATA[Re: Problem z prawidłowym użyciem UART_getc()]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13345#p13345"><![CDATA[
<div class="quotetitle">Antystatyczny napisał(a):</div><div class="quotecontent"><br />Mirku, oczywiście śledziłem ten wątek (no, może od przedwczoraj nie śledzę). To z tamtego wątku wziąłem pomysł na inkrementowanie flagi w przerwaniu, gdy nadejdzie CR. ....<br /></div><br /><br />Ale panie kochany to jest dalej rozwinięte i działa. Więc dlaczego zatrzymałeś się w środku na analizie tylko tego faktu że jest inkrementacja falgi ? <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> — 22 sie 2012, o 20:11</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-08-22T09:06:16+01:00</updated>
<published>2012-08-22T09:06:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13273#p13273</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13273#p13273"/>
<title type="html"><![CDATA[Re: Problem z prawidłowym użyciem UART_getc()]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13273#p13273"><![CDATA[
Ale zanim kupisz drugą książkę, proszę potestuj jeszcze sporo rzeczy z tej, szczególnie postaraj się zrozumieć działanie timerów programowych czy też ZDARZEŃ, których dotykam w ostatnich rozdziałach praktycznych. Bez tego może być ci bardzo bardzo ciężko dalej..... <br /><br />A tak nawiasem mówiąc to powiedz mi - czy to też ci umknęło w tym wątku jak na początku kolega MichalXY podał ci LINK na naszym forum, gdzie inny kolega żmudnie ale samodzielnie (no może z lekką pomocą) stworzył już to z czym teraz ty się borykasz ???? i to bez drugiej książki - żeby chociaż tak w podstawowy sposób działało ???<br /><br /><!-- l --><a class="postlink-local" href="http://forum.atnel.pl/topic968.html" >topic968.html</a><!-- l --><br /><br />toż przeczytaj dokładnie cały ten wątek post za postem do końca, bo masz tam rozwiązanie jak na patelni - nie wiem dlaczego pomijasz takie podpowiedzi ? <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> i męczysz się z próbą rozwijania swojego sposobu, który nie jest szczęśliwy - bo sam nawet przyznajesz ten fakt.  A nieumiejętne posługiwanie się tu wskaźnikiem jak pisał też wyżej kolega GwynBleiD ... doprowadzi cię już w ogóle do masakry. (doczytaj jego uwagę bo trzymanie się twierdzenia że taka proteza powiedzmy że działa, zaowocuje kolejnymi błędami i myśleniem nie w tą stronę)<br /><br />reasumując - prześledź ten wątek - jeszcze raz przypominam.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 22 sie 2012, o 09:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-08-21T23:01:43+01:00</updated>
<published>2012-08-21T23:01:43+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13256#p13256</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13256#p13256"/>
<title type="html"><![CDATA[Re: Problem z prawidłowym użyciem UART_getc()]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13256#p13256"><![CDATA[
<div class="quotetitle">Antystatyczny napisał(a):</div><div class="quotecontent"><br />Pozostaje mi kupić drugą książkę (już, natychmiast)<br /></div><br /><br />A może mi kolega ale tak szczerze powiedzieć co to ma oznaczać ? (nie będę się domyślał bo może źle pomyślę, więc proszę o podpowiedź)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 21 sie 2012, o 23:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Malutki_27]]></name></author>
<updated>2012-08-21T12:23:19+01:00</updated>
<published>2012-08-21T12:23:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13177#p13177</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13177#p13177"/>
<title type="html"><![CDATA[Re: Problem z prawidłowym użyciem UART_getc()]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13177#p13177"><![CDATA[
Ale ten warunek zawsze będzie spełniony zamiast &amp;&amp; użyj ||.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=225">Malutki_27</a> — 21 sie 2012, o 12:23</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-08-20T22:12:02+01:00</updated>
<published>2012-08-20T22:12:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13139#p13139</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13139#p13139"/>
<title type="html"><![CDATA[Re: Problem z prawidłowym użyciem UART_getc()]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13139#p13139"><![CDATA[
Ja niestety nie za bardzo rozumiem w ogóle działania tej pętli, jaka jest jej idea? ... teoretycznie wydawać by się mogło że ma się realizować do momentu gdy nie CR i LF ale weź że sprawdź sobie sam. Zakładając np że pierwszy znak to będzie LF to co się stanie ? - no doda się do bufora i już masz ZONK'a<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 20 sie 2012, o 22:12</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-08-20T21:49:55+01:00</updated>
<published>2012-08-20T21:49:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13134#p13134</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13134#p13134"/>
<title type="html"><![CDATA[Re: Problem z prawidłowym użyciem UART_getc()]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13134#p13134"><![CDATA[
Toż wyżej mówię że to niemożliwe przecież kompletnie jeśli bufor to tablica np:<br /><br />char bufor[10];<br /><br />to nigdy nie wykonasz operacji<br /><br />bufor = bufor - 2;<br /><br />chyba żebyś sobie wskaźnik powołał do życia. Ale to i tak w ogóle nie tędy droga - jakoś chcesz do tego strasznie podejść od tyłu. Jeszcze raz powiem, wcześniej masz jakąś swoją funkcję która napełnia ten bufor, to chyba po drodze wiesz jakimi znakami prawda ? albo możesz je sprawdzać - to co stoi na przeszkodzie aby nie wpuścić do bufora CRLF, zamiast tak jak ty chcesz po dwarkroć dłużej - czyli najpierw wkładać te znaki do bufora a potem znowu je usuwać ....<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 20 sie 2012, o 21:49</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-08-20T21:39:11+01:00</updated>
<published>2012-08-20T21:39:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13131#p13131</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13131#p13131"/>
<title type="html"><![CDATA[Re: Problem z prawidłowym użyciem UART_getc()]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13131#p13131"><![CDATA[
No ale jak w taki sposób<br /><br />bufor = bufor - 2;<br /><br />można byłoby się pozbyć akurat znaków CRLF, albo samego LF - o ile w ogóle taka operacja byłaby możliwa. A przecież wiesz że to nie Bascom i nie można sobie robić takich operacji jak na zmiennych typu<br /><br />Dim bufor As String * 16<br /><br />zresztą i w Bascomie nie zrobiłbyś operacji wtedy bufor = bufor - 2 <br /><br />bo co to miałoby znaczyć ?<br /><br />przecież napisałeś wyżej jakąś niby funkcję do napełniania bufora więc w niej sprawdzaj jakie znaki wpadają do niego i je usuwaj.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 20 sie 2012, o 21:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-08-20T21:24:19+01:00</updated>
<published>2012-08-20T21:24:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13127#p13127</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13127#p13127"/>
<title type="html"><![CDATA[Re: Problem z prawidłowym użyciem UART_getc()]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13127#p13127"><![CDATA[
No właśnie cały widz na tym polega aby przystosować odbiór stringów do różnych aplikacji, które mogą wysyłać raz CR a innym razem CRLF. Więc trzeba je wycinać. Nie wiem co znaczy &quot;na chama skrócić string&quot; ??? <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> .... ale no trzeba go skrócić o te znaki właśnie, a zero na końcu samemu dostawić. Wtedy lcd_str() będzie działać grzecznie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 20 sie 2012, o 21:24</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-08-20T21:13:17+01:00</updated>
<published>2012-08-20T21:13:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13124#p13124</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13124#p13124"/>
<title type="html"><![CDATA[Re: Problem z prawidłowym użyciem UART_getc()]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13124#p13124"><![CDATA[
Całe sedno rozdziału o parsowaniu danych z UART w drugiej książce to właśnie odbiór danych w ASCII zakończonych znakami CRLF i to pięknie w zdarzeniach....<br /><br />Tutaj, ten twój klocek to nieobsłużony znak LF albo CR z poprzedniej ramki. Musisz się go po prostu pozbywać za każdym razem.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 20 sie 2012, o 21:13</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-08-19T21:06:45+01:00</updated>
<published>2012-08-19T21:06:45+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13063#p13063</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13063#p13063"/>
<title type="html"><![CDATA[Re: Problem z prawidłowym użyciem UART_getc()]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1432&amp;p=13063#p13063"><![CDATA[
nie rozumiejąc do końca działania funkcji uart_getc() oraz dokąd nie wyświetli ci się ten jeden odebrany znak, ja bym się na twoim miejscu nie brał w ogóle za testowanie odbioru stringów bo prosisz się o dodatkowe kłopoty....<br /><br />Szkoda że nie chcesz sprawdzać tego co polecałem - no ale może całkiem inną drogą też dojdziesz do swojego celu <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> tego ci życzę.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 19 sie 2012, o 21:06</p><hr />
]]></content>
</entry>
</feed>