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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2017-08-12T17:47:55+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=8&amp;t=18978&amp;mode</id>
<entry>
<author><name><![CDATA[DarkMajster]]></name></author>
<updated>2017-08-12T17:47:55+01:00</updated>
<published>2017-08-12T17:47:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18978&amp;p=193356#p193356</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18978&amp;p=193356#p193356"/>
<title type="html"><![CDATA[Re: bufor cykliczny uart]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18978&amp;p=193356#p193356"><![CDATA[
No niby działa, ale nie działa <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><br /><br />jedna atmega wysyła ciągle tak:<br />[syntax=c]_delay_ms(100);<br />uart_putint(cyfra1,10);<br />uart_putint(cyfra2,10);<br />uart_putint(cyfra3,10);<br />uart_putint(cyfra4,10);<br />uart_putint(kropka,10);<br />uart_putc(13);[/syntax]<br /><br />druga odbiera i wyrzuca bufor stringowy do putty na zasadzie: indeks, zawartość dziesiątkowo, no i raz jest dobrze<br /><a href="https://obrazkiforum.atnel.pl/17494/5461ba6ecac5a90c042344c31a03c2a3.png"  class="postlink"><img src="https://obrazkiforum.atnel.pl/17494/5461ba6ecac5a90c042344c31a03c2a3.png" alt="Obrazek" /></a><br /><br />a raz nie wiem co tu sie w ogóle wyprawia, nawet spacje ukradli <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><br /><br /><a href="https://obrazkiforum.atnel.pl/17494/0881cc2142e917814183255accace43b.png"  class="postlink"><img src="https://obrazkiforum.atnel.pl/17494/0881cc2142e917814183255accace43b.png" alt="Obrazek" /></a><a href="https://obrazkiforum.atnel.pl/17494/9a8d9fa466511de37ea84053ae4b7d8f.png"  class="postlink"><img src="https://obrazkiforum.atnel.pl/17494/9a8d9fa466511de37ea84053ae4b7d8f.png" alt="Obrazek" /></a><br /><br />dodam, iż przy resetowaniu procka odbiorczego czasem zaczyna działać, potem się chrzani, a jak po resecie jest schrzanione to już naprawić się nie chce ;c<br /><br />czyżby jednak wonsz sie zjadał? No i co tu teraz mądrego zrobić?<br /><br /><br /><br />EDIT:<br />Problem rozwiązany! Choć nie wiem czy to tak elegancko <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" />, mianowicie: muszę przesłać 6 bajtów, więc dorzuciłem dwa byle jakie, zmniejszyłem rozmiar bufora odbiorczego do 8 bajtów, pozwoliłem mojemu wonszowi się zjadać, i teraz jeżeli przyjdą nowe dane[a będzie to dokładnie 8 bajtów], to dany bajt (oznaczający np stan przycisku) będzie miał nie zmieniony indeks, a na wypadek jakiegokolwiek przesunięcia - sprawdzam czy te zbędne 2 bajty są na swoim miejscu, jeżeli nie to ustawiam wonża na początek. Do moich celów sprawdza się wyśmienicie, co o tym sądzicie?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17494">DarkMajster</a> — 12 sie 2017, o 17:47</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[xentis]]></name></author>
<updated>2017-08-12T16:34:29+01:00</updated>
<published>2017-08-12T16:34:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18978&amp;p=193355#p193355</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18978&amp;p=193355#p193355"/>
<title type="html"><![CDATA[Re: bufor cykliczny uart]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18978&amp;p=193355#p193355"><![CDATA[
powinno zadziałać<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6265">xentis</a> — 12 sie 2017, o 16:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[DarkMajster]]></name></author>
<updated>2017-08-12T16:26:26+01:00</updated>
<published>2017-08-12T16:26:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18978&amp;p=193354#p193354</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18978&amp;p=193354#p193354"/>
<title type="html"><![CDATA[Re: bufor cykliczny uart]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18978&amp;p=193354#p193354"><![CDATA[
[syntax=c]dupa = uart_getc();<br />if(dupa)<br />{<br />        int i = 0;<br />        while(dupa != 13)<br />        {<br />                buforowicz&#91;i&#93; = dupa;<br />                i++;<br />                dupa = uart_getc();<br />        }<br />}[/syntax]<br />A teraz?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17494">DarkMajster</a> — 12 sie 2017, o 16:26</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[xentis]]></name></author>
<updated>2017-08-12T16:05:36+01:00</updated>
<published>2017-08-12T16:05:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18978&amp;p=193353#p193353</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18978&amp;p=193353#p193353"/>
<title type="html"><![CDATA[Re: bufor cykliczny uart]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18978&amp;p=193353#p193353"><![CDATA[
No niezupełnie - zauważ że dwa razy użyłeś funkcji uart_getc zanim odczytałeś docelowo znak. pierwsze użycie uart_getc w ifie pośle odebrany znak w niebyt, to samo w warunku pętli while dopiero trzeci znak wyląduje w Twoim buforze, ale już 4 znów poleci w nicość itd. Każde użycie funkcji uart_getc bezpowrotnie wyjmuje jeden znak z bufora więc od razu musisz wynik tej funkcji gdzieś umieścić.<br /><br />Jeśli już chcesz bez zdarzeń to <br />najpierw załaduj wynik funkcji uart_getc do jakiejś tymczasowej zmiennej, następnie jeśli jest tam znak to umieść go w swoim buforze. <br />Możesz też w przerwaniu gdzie bufor cykliczny jest ładowany dodaj sobie zmienną/flagę która w momencie gdy w buforze będzie cokolwiek zostanie ustawiona na 1 a gdy bufor pusty na zero. A w pętli głównej programu sprawdzaj flagę i gdy ustawiona na 1 inicjuj odbiór danych z bufora cyklicznego do swojego bufora.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6265">xentis</a> — 12 sie 2017, o 16:05</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[DarkMajster]]></name></author>
<updated>2017-08-12T14:21:07+01:00</updated>
<published>2017-08-12T14:21:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18978&amp;p=193349#p193349</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18978&amp;p=193349#p193349"/>
<title type="html"><![CDATA[Re: bufor cykliczny uart]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18978&amp;p=193349#p193349"><![CDATA[
Coś takiego?<br /><br />[syntax=c]if(uart_getc())<br />{<br />int i = 0;<br />while(uart_getc() != 0x0d)<br />{<br />buforowicz&#91;i&#93; = uart_getc();<br />i++;<br />}<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17494">DarkMajster</a> — 12 sie 2017, o 14:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2017-08-12T14:03:15+01:00</updated>
<published>2017-08-12T14:03:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18978&amp;p=193347#p193347</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18978&amp;p=193347#p193347"/>
<title type="html"><![CDATA[Re: bufor cykliczny uart]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18978&amp;p=193347#p193347"><![CDATA[
<div class="quotetitle">DarkMajster napisał(a):</div><div class="quotecontent"><br />co zrobiłem źle?<br /></div><br /><br />funkcja get_char() pobiera po jednym znaku z bufora cyklicznego a jeśli NIC nie ma w buforze to zwraca ZERO<br /><br />a zatem jeśli nie masz GB to musisz sobie sam na razie jakoś napisać odbiór stringów z bufora cyklicznego. Krótka podpowiedź jak to zrobić tak &quot;na piechotę&quot;<br /><br />badasz cyklicznie czy get_char() zwraca NIE ZERO, jeśli znak ASCII to doklejasz go do jakiegoś już swojego bufora i wciąż oczekujesz na znak CR czyli 0x0D - jeśli get_char() zwróci CR to wtedy wiesz że nadleciał koniec stringa i możesz odczytać swój bufor z ładnym stringiem.<br /><br />Polecam jednak GB tam pokazane jest to pięknie jak się robi na zdarzeniach<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 12 sie 2017, o 14:03</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[DarkMajster]]></name></author>
<updated>2017-08-12T10:38:11+01:00</updated>
<published>2017-08-12T10:38:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18978&amp;p=193337#p193337</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18978&amp;p=193337#p193337"/>
<title type="html"><![CDATA[Re: bufor cykliczny uart]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18978&amp;p=193337#p193337"><![CDATA[
Wczorajszy brak prądu mi chyba wyszedł na dobre bo drugi raz przeczytałem rozdział o uarcie, i wydaje mi się, że wiem więcej <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><br /><br />Zrobiłem w atmedze wysyłającej tak<br />[syntax=c]_delay_ms(500);<br />uart_putc(2); //Start of Text<br />uart_putint(cyfra1,10);<br />uart_putint(cyfra2,10);<br />uart_putint(cyfra3,10);<br />uart_putint(cyfra4,10);<br />uart_putint(kropka,10);[/syntax]<br /><br />A w odbierającej wymyśliłem coś takiego:<br /><br />[syntax=c]while(uart_getc() != 2)<br />{<br />uart_getc();<br />}<br />a= dekoder( uart_getc() );<br />b= dekoder( uart_getc() );<br />c= dekoder( uart_getc() );<br />d= dekoder( uart_getc() );<br />kropka = dekoder ( uart_getc() );[/syntax]<br /><br />I myślę, że powinno to działać tak:<br />czekam sobie na znak start of text, jeżeli go nie mam to uart_getc'harem usuwam z bufora jeden znak, a jeżeli już będzie ten oczekiwany znak 2, to wiem ze następne piec znaków to interesujące mnie dane.<br />Mam tylko jeden problem - nie działa :C co zrobiłem źle?<br /><br />(dekoder to poprostu zamiana cyfr z ascii na zwykłe oraz kilka interersujących mnie liter na liczby 10-15<br />[syntax=c]uint8_t dekoder( char bufor )<br />{<br />        uint8_t powrot;<br />if(bufor&gt;=48 &amp;&amp; bufor&lt;=57) powrot = bufor-48;<br />if(bufor==76) powrot = 10;<br />if(bufor==72) powrot = 11;<br />if(bufor==80) powrot = 12;<br />if(bufor==65) powrot = 13;<br />if(bufor==45) powrot = 14;<br />if(bufor==32) powrot = 15;<br />return powrot;<br />}[/syntax]<br />)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17494">DarkMajster</a> — 12 sie 2017, o 10:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2017-08-11T21:32:44+01:00</updated>
<published>2017-08-11T21:32:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18978&amp;p=193323#p193323</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18978&amp;p=193323#p193323"/>
<title type="html"><![CDATA[Re: bufor cykliczny uart]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18978&amp;p=193323#p193323"><![CDATA[
<div class="quotetitle">DarkMajster napisał(a):</div><div class="quotecontent"><br />jeżeli tego nie zrobię to się bufor zapcha i obrazi?<br /></div><br /><img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> no i fajnie w końcu widać - ze kolega załapał<br /><br />nie nie obrazi - zajrzyj do BB do przykładów - masz tam moment w którym możesz reagować na błąd przepełnienia ... ale...<br /><br />ale czy warto czekać na niego ?<br /><br />nie ! ... warto wciąż odbierać stringi a nie pojedyncze znaki - wtedy nie uda ci się zapchać bufora cyklicznego<br /><br />Jak to robić ?<br /><br />To wyjaśniam już na końcu Greenbooka - ponieważ do tego potrzebne mi było aby czytelnik zrozumiał programowanie oparte o zdarzenia ...<br /><br />czy  można bez GB ? ,..... można - pewnie, że można - jakoś &quot;ręcznie&quot; ... na forum wielokrotnie czytelnicy podejmowali takie próby i z powodzeniem<br /><br />pomimo to na końcu gdy zobaczyli jak warto to robić w oparciu o (EVENTS) zdarzenia - to ...<br /><br />ALE tu warto obejrzeć chociażby ostatni poradnik o komunikacji UDP<br /><br />nie obawiaj się, że mowa o UDP - zobacz o co w ogóle chodzi <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />mówię ci obejrzyj to <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br /><div style="width: 583px; height: 471px; margin: 0 auto; padding-left: 26px; padding-top: 48px; background: url('https://www.atnel.pl/download/atnel_tv.png') no-repeat;"> <strong>iframe</strong> </div><br /><br />zdziwisz się jak prosto można to obsługiwać<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 11 sie 2017, o 21:32</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[DarkMajster]]></name></author>
<updated>2017-08-11T19:21:11+01:00</updated>
<published>2017-08-11T19:21:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18978&amp;p=193320#p193320</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18978&amp;p=193320#p193320"/>
<title type="html"><![CDATA[Re: bufor cykliczny uart]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18978&amp;p=193320#p193320"><![CDATA[
No tak, powinienem użyć putint nie mam pojęcia o czym myślałem pisząc to ( zwalmy wszystko na grzejące słoneczko ). więc mam UART_RxBuf[] do którego wpadają odebrane dane, kradnąc je przez uart_getc zwalniam miejsce na kolejne, jeżeli tego nie zrobię to się bufor zapcha i obrazi?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17494">DarkMajster</a> — 11 sie 2017, o 19:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2017-08-11T17:31:26+01:00</updated>
<published>2017-08-11T17:31:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18978&amp;p=193314#p193314</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18978&amp;p=193314#p193314"/>
<title type="html"><![CDATA[Re: bufor cykliczny uart]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18978&amp;p=193314#p193314"><![CDATA[
<div class="quotetitle">DarkMajster napisał(a):</div><div class="quotecontent"><br />ale ja nie wysyłam chara do terminala! chara wysyłam do drugiej atmegi a<br /></div><br /><br />Jak ja słyszę że ktoś mówi<br /><br />&quot;wysyłam chara&quot;<br /><br />&quot;wysyłam inta&quot;<br /><br />to aż mi ciarki po kręgosłupie z lewej strony chodzą a włosy stają dęba i potrójna gęsia skórka się robi<br /><br />Chłopie - zrozum co to są znaki ASCII ... weź że obejrzyj ten poradnik<br /><br /><div style="width: 583px; height: 471px; margin: 0 auto; padding-left: 26px; padding-top: 48px; background: url('https://www.atnel.pl/download/atnel_tv.png') no-repeat;"> <strong>iframe</strong> </div><br /><br />ale tak od początku do końca<br /><br />..... opisany w Bluebooku bufor cykliczny działa TYLKO na ZNAKACH ASCII - zrozum to.<br /><br />Więc jak sobie wysyłasz dane binarnie (bo tak się mówi - a nie że &quot;wysyłam chary&quot; bo to jakaś kosmiczna bzdura) ... to jak myślisz jak druga twoja atmega rozpozna koniec ramki gdy wyślesz sobie kod znaku = 13 ???? wiesz co to jest 13 ? hexadecymalnie 0x0D ???<br /><br />Na prawdę - na początek postaraj się zrozumieć o co chodzi ze znakami ASCII - i jak wygląda komunikacja ASCII bo robisz jakieś MEGA KARDYNALNE błędy<br /><br />możesz wysyłać STRINGI z jednej atmegi do drugiej i to stringi zakończone znakiem CR (ENTER 0x0d) <br /><br />a nie tam wysyłać sobie ciurkiem 128 bajtów czysto binarnie. Twoja biedna druga Atmega po prostu zwymiotuje najpierw jak zobaczy ZERO<br /><br />później gdy nadleci znak 0x0d ... bo uzna że dotarła pierwsza ramka ale ramka zamiast ASCII to zawierająca znaki niedrukowalne <br /><br />0,1,2,3,4,5,6,7,8,9 ... 11,12<br /><br />dlaczego nie ma 10 ? bo 10 czyli 0x0a to z kolei znak LF (LineFeed) pomijany przez obsługę bufora cyklicznego ....<br /><br />coś czuję, że chyba jednak nawet nie przeczytałeś tego rozdziału w Bluebooku na temat tych buforów cyklicznych hmmm ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 11 sie 2017, o 17:31</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[xentis]]></name></author>
<updated>2017-08-11T17:10:13+01:00</updated>
<published>2017-08-11T17:10:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18978&amp;p=193313#p193313</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18978&amp;p=193313#p193313"/>
<title type="html"><![CDATA[Re: bufor cykliczny uart]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18978&amp;p=193313#p193313"><![CDATA[
no to jeśli nie pobierasz danych z bufora cyklicznego funkcją która do tego służy a dobierasz się bezpośredni do samego bufora to nie dziw się że bufor się zatrzymuje ( jest tak napisany że jeśli tymczasowy head się zrówna z tail to dane nie są umieszczane w buforze, a w warunku nawet masz komentarz &quot;tutaj możemy w jakiś wygodny dla nas sposób obsłużyć błąd spowodowany próbą nadpisania danych w buforze&quot;) Jeśli chcesz by bufor się nadpisywał po prostu wywal warunek, a do pobierania danych z bufora używaj dedykowanej do tego funkcji uart_getc (bo generalnie z bufora nie powinieneś bezpośrednio odczytywać).<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6265">xentis</a> — 11 sie 2017, o 17:10</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[DarkMajster]]></name></author>
<updated>2017-08-11T16:32:16+01:00</updated>
<published>2017-08-11T16:32:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18978&amp;p=193310#p193310</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18978&amp;p=193310#p193310"/>
<title type="html"><![CDATA[Re: bufor cykliczny uart]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18978&amp;p=193310#p193310"><![CDATA[
tak jak w drugim kodzie, w 1 poście<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17494">DarkMajster</a> — 11 sie 2017, o 16:32</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[xentis]]></name></author>
<updated>2017-08-11T16:30:26+01:00</updated>
<published>2017-08-11T16:30:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18978&amp;p=193309#p193309</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18978&amp;p=193309#p193309"/>
<title type="html"><![CDATA[Re: bufor cykliczny uart]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18978&amp;p=193309#p193309"><![CDATA[
A jak sprawdzasz co jest w buforze odbiorczym?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6265">xentis</a> — 11 sie 2017, o 16:30</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[DarkMajster]]></name></author>
<updated>2017-08-11T16:21:25+01:00</updated>
<published>2017-08-11T16:21:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18978&amp;p=193308#p193308</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18978&amp;p=193308#p193308"/>
<title type="html"><![CDATA[Re: bufor cykliczny uart]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18978&amp;p=193308#p193308"><![CDATA[
ale ja nie wysyłam chara do terminala! chara wysyłam do drugiej atmegi a ta wysyla zawartość UART_RxBuf[] jako inty do terminala, bo chciałem sprawdzić czy atmega druga odbiera dane tak jak myślałem czyli zapalnia UART_RxBuf[] a po zapisaniu 32 bajta nadpisuje po kolei UART_RxBuf[0], UART_RxBuf[1].. etc, ale widzę, że nie i stąd drugie pytanie jak odbierać te dane poprawnie<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17494">DarkMajster</a> — 11 sie 2017, o 16:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[xentis]]></name></author>
<updated>2017-08-11T16:15:30+01:00</updated>
<published>2017-08-11T16:15:30+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18978&amp;p=193307#p193307</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18978&amp;p=193307#p193307"/>
<title type="html"><![CDATA[Re: bufor cykliczny uart]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18978&amp;p=193307#p193307"><![CDATA[
Zrozum jak wysyłasz char'a od 0 - 127 to i tak te od 0 do 31 w terminalu nie ujrzysz nic albo krzaki bo znaki do 31 to są znaki specjalne i sterujące więc jak chcesz widzieć w terminali to wysyłaj znaki od 32 w górę (tablica znaków ASCII się kłania).<div class="quotetitle">DarkMajster napisał(a):</div><div class="quotecontent"><br />Okej, czyli rozumiem, że bufor sobie żyje jak chce i tylko mi wrzuca co odebrał do UART_RxBuf[]? Jak więc powinienem korzystać z odebranych danych kiedy owa tablica mi się zapcha? jakoś czyścić czy cuś?<br /></div><br />Jeżeli będziesz odbierać dane z bufora to Ci się nie przepełni. Każdy odczytany znak zwalnia miejsce z bufora. Przepełnienie może nastąpić gdy po stronie odbiorczej będziesz zbyt wolno odczytywał dane z bufora lub gdy masz za mały bufor a nadawana jest większa ilość danych ciurkiem.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6265">xentis</a> — 11 sie 2017, o 16:15</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[DarkMajster]]></name></author>
<updated>2017-08-11T15:05:27+01:00</updated>
<published>2017-08-11T15:05:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18978&amp;p=193305#p193305</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18978&amp;p=193305#p193305"/>
<title type="html"><![CDATA[Re: bufor cykliczny uart]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18978&amp;p=193305#p193305"><![CDATA[
z atmegi[1] przesyłam do atmegi[2] char'a 0-127, a z tej drugiej do komputera na terminal zawartość UART_RxBuf[].<br />Okej, czyli rozumiem, że bufor sobie żyje jak chce i tylko mi wrzuca co odebrał do UART_RxBuf[]? Jak więc powinienem korzystać z odebranych danych kiedy owa tablica mi się zapcha? jakoś czyścić czy cuś?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17494">DarkMajster</a> — 11 sie 2017, o 15:05</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2017-08-11T13:21:19+01:00</updated>
<published>2017-08-11T13:21:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18978&amp;p=193302#p193302</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18978&amp;p=193302#p193302"/>
<title type="html"><![CDATA[Re: bufor cykliczny uart]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18978&amp;p=193302#p193302"><![CDATA[
A co to ma w ogóle wspólnego z buforem cyklicznym ? Coś kolega chyba kompletnie nie zrozumiał IDEI działania takiego bufora<br /><br />on jest po to żeby sobie działał w tle przy czym bufor nadawczy nie ma aż tak istotnego znaczenia przy większych prędkościach jak bufor odbiorczy<br /><br />Co ty w ogóle testujesz i co chcesz osiągnąć ? sorki ale po twoim opisie kompletnie tego nie rozumiem - o czym piszesz ... no i ten test<br /><br />uart_putc(i);<br /><br />jak myślisz co ty zobaczysz na terminalu gdy 'c' będzie się zmieniać w zakresie od 0 do 128  ???? Zdajesz sobie sprawę z tego co to są znaki &quot;niedrukowalne&quot; o kodach chociażby od 0 - 32 ? ... znaki ASCII czyli te prawidłowo widoczne w terminalu zaczynają się dopiero od spacji od kodu = 32<br /><br />w drugim przykładzie już coś sobie robisz dobrze bo korzystasz z uart_putint() ... ale nadal nie rozumiem co to ma mieć za związek z buforem cyklicznym ?<br /><br />Bufor sobie działa a ty w takim przykładzie nawet nie wiesz o tym, że on działa &quot;pod spodem&quot; i tak ma być<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 11 sie 2017, o 13:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[DarkMajster]]></name></author>
<updated>2017-08-11T12:46:30+01:00</updated>
<published>2017-08-11T12:46:30+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18978&amp;p=193298#p193298</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18978&amp;p=193298#p193298"/>
<title type="html"><![CDATA[bufor cykliczny uart]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18978&amp;p=193298#p193298"><![CDATA[
Witam! Mam pytanie co do bufora cyklicznego uart'a z bluebookowej biblioteki.<br />Mianowicie czy on powinien działać w taki sposób: w atmedze[1] wysyłam co sekundę inny char:<br />[syntax=c]uart_putc(i);<br />_delay_ms(1000);<br />i++;<br />if(i==128) i=0;[/syntax]<br />W atmedze[2] wyrzucam sobie na terminal zawartość tablicy bufora<br />[syntax=c]for(int i=0; i&lt;=31; i++){<br />uart_putint(i,10);<br />uart_puts(&quot; &quot;);<br />uart_putint(UART_RxBuf&#91;i&#93;,10);<br />uart_putc('\r');// wyślij znak CR (enter)<br />uart_putc('\n');// wyślij znak LF (nowa linia)<br />}[/syntax]<br />Po włączeniu atmegi[2] mam same zera (co raczej mnie nie dziwi <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" />) i powolutku zera zamieniają się na kolejne liczby naturalne, myślałem, że po zapisaniu 32 bajta zaczną się nadpisywać bajty od 1, jednak nic się nie dzieje  <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /> Gdzie więc podziała się cykliczność mojego bufora?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17494">DarkMajster</a> — 11 sie 2017, o 12:46</p><hr />
]]></content>
</entry>
</feed>