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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-06-27T10:03:11+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=867&amp;mode</id>
<entry>
<author><name><![CDATA[barszczz]]></name></author>
<updated>2014-06-27T10:03:11+01:00</updated>
<published>2014-06-27T10:03:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=867&amp;p=85879#p85879</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=867&amp;p=85879#p85879"/>
<title type="html"><![CDATA[Re: bufor cykliczny i rs232]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=867&amp;p=85879#p85879"><![CDATA[
Wczesniej moglem uzyskac wartosci z przedzialu 0-15 no a teraz juz moge wpisywac do tablicy wartosci od 0 do 255.<br /><br />[syntax=c]uint8_t ASCII2HEX(char data);<br /><br />int main(void) {<br /><br />char Tablica&#91;8&#93;;<br />char IDX_bajt = 1;<br />int8_t IDX_tab = 0;<br /><br />char myData;<br />uint8_t dataHex;<br />USART_Init(__UBRR);<br /><br />sei();<br /><br />tr_cls(0);<br />uart_puts(&quot;****** start *****&quot;);<br />_delay_ms(1000);<br />tr_cls(0);<br />while (1) {<br /><br />myData = uart_getc();<br /><br />if ((myData) &amp;&amp; (myData != ',')) {<br /><br />dataHex = ASCII2HEX(myData); // konwertuj z ASCII na HEX<br /><br />if ((dataHex != 178) &amp;&amp; (IDX_bajt == 2)) {<br />Tablica&#91;IDX_tab&#93; = Tablica&#91;IDX_tab&#93; + dataHex;<br /><br />uart_puts(&quot;\x1b&quot; &quot;E&quot;);<br />uart_puts(<br />&quot;Jaka liczba binarna wpisana w tablicy po dodaniu bajt2=     &quot;);<br />uart_putint(Tablica&#91;IDX_tab&#93;, 2);<br />}<br /><br />if ((dataHex != 178) &amp;&amp; (IDX_bajt == 1)) {<br />Tablica&#91;IDX_tab&#93; = dataHex &lt;&lt; 4; // wsadzamy starsza czesc do tabeli<br />IDX_bajt++;<br /><br />uart_puts(&quot;\x1b&quot; &quot;E&quot;);<br />uart_puts(<br />&quot;Co wpisane jest w Tablicy gdy wpisanie jedynie bajt1=      &quot;);<br />uart_putint(Tablica&#91;IDX_tab&#93;, 2);<br />}<br />}<br /><br />if ((myData == ',')) {<br /><br />uart_puts(&quot;\x1b&quot; &quot;E&quot;);<br />uart_puts(&quot;Wcisnieto ,   &quot;);<br />uart_puts(&quot;\x1b&quot; &quot;E&quot;);<br />uart_puts(&quot;IDX of Tablicy =  &quot;);<br />uart_putint(IDX_tab, 10);<br /><br />if (IDX_bajt == 2) {<br />IDX_tab++;<br />IDX_bajt = 1;<br /><br />if (IDX_tab &gt; 7) {<br />IDX_tab = 0;<br /><br />uart_puts(&quot;\x1b&quot; &quot;E&quot;);<br />uart_puts(&quot;IDX of Tablicy gdy &gt; 7=  &quot;);<br />uart_putint(IDX_tab, 10);<br />}<br />}<br />}<br /><br />if ((myData == 32)) { // 'spacja'<br /><br />uart_puts(&quot;\x1b&quot; &quot;E&quot;);<br />uart_puts(&quot;IDX_tab =  &quot;);<br />uart_putint(IDX_tab, 10);<br />uart_puts(&quot;\x1b&quot; &quot;E&quot;);<br />uart_puts(&quot;Numer bajtu=  &quot;);<br />uart_putint(IDX_bajt, 10);<br /><br />uint8_t i;<br />for (i = 0; i &lt; 8; i++) {<br /><br />uart_puts(&quot;\x1b&quot; &quot;E&quot;);<br />uart_puts(&quot;Int z tablicy  &quot;);<br />uart_putint(i, 10);<br />uart_puts(&quot; =  &quot;);<br />uart_putint(Tablica&#91;i&#93;, 10);<br />}<br /><br />for (i = 0; i &lt; 8; i++) {<br /><br />uart_puts(&quot;\x1b&quot; &quot;E&quot;);<br />uart_puts(&quot;String z Tablicy z tablicy  &quot;);<br />uart_putint(i, 10);<br />uart_puts(&quot; =  &quot;);<br />uart_putc(Tablica&#91;i&#93;);<br />}<br />}<br />}<br />}<br /><br />uint8_t ASCII2HEX(char data) {<br /><br />uart_puts(&quot;\x1b&quot; &quot;E&quot;);<br />uart_puts(&quot;Co wcisnieto=  &quot;);<br />uart_putc(data);<br />uart_puts(&quot;\x1b&quot; &quot;E&quot;);<br />uart_puts(&quot;Postac Binarna =  &quot;);<br />uart_putint(data, 2);<br /><br />if ((data &gt; 47) &amp;&amp; (data &lt; 71)) {<br /><br />if ((data &gt; 47) &amp;&amp; (data &lt; 58)) {<br />data = data &amp; 0b00001111;<br />//return data;<br />}<br />if ((data &gt; 64) &amp;&amp; (data &lt; 71)) {<br />data = data - 55;<br />//return data;<br />}<br />} else {<br />data = 178; // Dark Shade box sign when no capital letter A-F neither Number 0-9<br />//178 = 0b 1011 0010<br />}<br /><br />uart_puts(&quot;\x1b&quot; &quot;E&quot;);<br />uart_puts(&quot;Co otrzymano binarnie =  &quot;);<br />uart_putint(data, 2);<br />uart_puts(&quot;\x1b&quot; &quot;E&quot;);<br />tr_cursor_hide(1);<br />return data;<br /><br />}[/syntax]<br /><br />Wynik widoczny na zdjeciu:<br /><a href="http://forum.atnel.pl/_obrazki/o/850/a24238614f3945716d79c13c64c18fa8.GIF"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/850/a24238614f3945716d79c13c64c18fa8.GIF" alt="Obrazek" /></a><br /><br /><br />Wyglada na to, ze separator przecinkiem i lokowanie dwoch znakow do jednej komorki w tablicy dziala.<br />Zastanawia mnie jedynie jedna rzecz. Po wsunieciu calego bajtu tak jak powyzej i zresetowaniu kontrolera nawet kilkukrotnym po sprawdzeniu zawartosci Tablicy  mam ciagle te same wartosci  <img src="https://forum.atnel.pl/images/smilies/icon_e_surprised.gif" alt=":o" title="Zdziwiony" /> .<br />Czy po zresetowaniu kontrolera wartosci te nie powinny ulec zmianie ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=850">barszczz</a> — 27 cze 2014, o 10:03</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[barszczz]]></name></author>
<updated>2014-06-27T05:47:14+01:00</updated>
<published>2014-06-27T05:47:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=867&amp;p=85859#p85859</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=867&amp;p=85859#p85859"/>
<title type="html"><![CDATA[Re: bufor cykliczny i rs232]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=867&amp;p=85859#p85859"><![CDATA[
Po sprawdzeniu wczesniej podanego pseudo kodu i wyprobowaniu terminala i wysylu i odbior znakow ASCII moge smialo powiedziec ze tego typu domysly nie zadzialaja. A czemu ? Bo jej autor nie mial zielonego pojecia o wartosciach odebranych znakow ASCII ani o zasadzie dzialania funkcji atoi czy uart putin  <img src="https://forum.atnel.pl/images/smilies/icon_redface.gif" alt=":oops:" title="Zawstydzony" /> <br />Moze troszke sie rozpisze, ale w sumie chcialbym znalezc taka odpowiedz oraz graficzna interpretacje, wiec ponizej wstawie kilka linkow do filmikow Mirka i podstawowych stronek, tak aby od zera dotrzec do ponizszych zdjec.<br /><br />Na samym poczatku podstawa to:<br /><a href="http://www.ascii-code.com/"  class="postlink">http://www.ascii-code.com/</a><br />oraz filmik o terminalu i uart-cie:<br /><a href="http://www.youtube.com/watch?v=qDDCU3udirA#t=2061"  class="postlink">http://www.youtube.com/watch?v=qDDCU3udirA#t=2061</a><br /><a href="http://www.youtube.com/watch?v=JbLHXkFZwsE&amp;list=PLtXXWLsA5QNi_R9uDXpHRpo5hRnig_f23#t=2265"  class="postlink">http://www.youtube.com/watch?v=JbLHXkFZwsE&amp;list=PLtXXWLsA5QNi_R9uDXpHRpo5hRnig_f23#t=2265</a><br /><br />Tyle wystarczy do latwej reprezentacji wynikow na terminalu co znacznie ulatwi zrozumienie pewnych spraw.<br /><br />W moim przypadku staram sie znalezc szybka i latwa metode konwertowania odebranych znakow ASCII, ktore reprezentuja wartosci w HEX -ie  (od 0 do 255) na wartosci binarne badz decymalne.<br /><br />Na samym poczatku zdjecie przedstawiajace co odbieramy i kilka sposobow wyswietlenia tej samej wartosci. Dodatkowo jak dziala przesuwanie bitowe i dodawanie bitow.<br /><br /><br /><a href="http://forum.atnel.pl/_obrazki/o/850/cf3699b2b59c0e51b37fbb5ad666510e.JPG"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/850/cf3699b2b59c0e51b37fbb5ad666510e.JPG" alt="Obrazek" /></a><br /><br />Jak widac, odzyskanie wartosci zapisanej w HEX nie polega na przesuwaniu czy dodawaniu bitow tak jak kombinowalem wczesniej <img src="https://forum.atnel.pl/images/smilies/icon_redface.gif" alt=":oops:" title="Zawstydzony" /> <br /><br />Nastepnie kilka pomocniczych filmikow:<br /><a href="http://www.youtube.com/watch?v=1tAXqCt5vVQ#t=878"  class="postlink">http://www.youtube.com/watch?v=1tAXqCt5vVQ#t=878</a><br /><a href="http://www.youtube.com/watch?v=zVjjbQiEXxs#t=645"  class="postlink">http://www.youtube.com/watch?v=zVjjbQiEXxs#t=645</a><br /><br />oraz male wyliczenia:<br /><a href="http://forum.atnel.pl/_obrazki/o/850/c2b61df009ff9123fefa0b42c20eda8e.GIF"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/850/c2b61df009ff9123fefa0b42c20eda8e.GIF" alt="Obrazek" /></a><br /><br /><br />Teraz juz wiadomo jak mozna odzyskac wartosc zapisana w HEX z ASCII<br /><br />[syntax=c]if ((myData &gt; 47) &amp;&amp; (myData &lt; 58)) { <br />//  if isdigit(myData) // Czy jest z przedzialu znakow 0-9<br />uart_puts(&quot;\x1b&quot; &quot;E&quot;);<br />uart_puts(&quot;Put C =  &quot;);<br />uart_putc(myData);<br />uart_puts(&quot;\x1b&quot; &quot;E&quot;);<br />uart_puts(&quot;Integer,10 =  &quot;);<br />uart_putint(myData, 10);<br />uart_puts(&quot;\x1b&quot; &quot;E&quot;);<br />uart_puts(&quot;Postac Binarna =  &quot;);<br />uart_putint(myData, 2);<br />uart_puts(&quot;\x1b&quot; &quot;E&quot;);<br />uart_puts(&quot;Put C &amp; 0b0000 1111 =  &quot;);<br />myData = myData &amp; 0b00001111;<br /><br />uart_putc(myData);<br />uart_puts(&quot;\x1b&quot; &quot;E&quot;);<br />uart_puts(&quot;Nowy Integer,10 =  &quot;);<br />uart_putint(myData, 10);<br />uart_puts(&quot;\x1b&quot; &quot;E&quot;);<br />uart_puts(&quot;Nowa Postac Binarna =  &quot;);<br />uart_putint(myData, 2);<br />uart_puts(&quot;\x1b&quot; &quot;E&quot;);<br />tr_cursor_hide(1);<br /><br />}<br /><br />if ((myData &gt; 64) &amp;&amp; (myData &lt; 71)) { <br />// if isalpha(myData) // Czy jest z przedzialu znakow A-F<br /><br />uart_puts(&quot;\x1b&quot; &quot;E&quot;);<br />uart_puts(&quot;Put C =  &quot;);<br />uart_putc(myData);<br />uart_puts(&quot;\x1b&quot; &quot;E&quot;);<br />uart_puts(&quot;Integer,10 =  &quot;);<br />uart_putint(myData, 10);<br />uart_puts(&quot;\x1b&quot; &quot;E&quot;);<br />uart_puts(&quot;Postac Binarna =  &quot;);<br />uart_putint(myData, 2);<br />uart_puts(&quot;\x1b&quot; &quot;E&quot;);<br />uart_puts(&quot;Put C  - 55 =  &quot;);<br />myData = myData - 55;<br /><br />uart_putc(myData);<br />uart_puts(&quot;\x1b&quot; &quot;E&quot;);<br />uart_puts(&quot;Nowy Integer,10 =  &quot;);<br />uart_putint(myData, 10);<br />uart_puts(&quot;\x1b&quot; &quot;E&quot;);<br />uart_puts(&quot;Nowa Postac Binarna =  &quot;);<br />uart_putint(myData, 2);<br />uart_puts(&quot;\x1b&quot; &quot;E&quot;);<br />tr_cursor_hide(1);<br />}[/syntax]<br /><br />A wynik wyglada tak:<br /><a href="http://forum.atnel.pl/_obrazki/o/850/0fb30249d249f1cf06881d246d54a8c2.GIF"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/850/0fb30249d249f1cf06881d246d54a8c2.GIF" alt="Obrazek" /></a><br />Wydaje mi sie, ze dzialac to bedzie poprawnie, ale pewien nie jestem czy nie ma innego lepszego sposobu na odzyskanie wartosci z ASCII.<br /><br />Wiem, ze to blache i podstawowe rzeczy, ale mam nadzieje ze komus sie to przyda a jak nie komus to zapewne po kilku tygodniach wszystko wyleci mi z glowy a te obrazki szybko przywroca mi pamiec  <img src="https://forum.atnel.pl/images/smilies/icon_mrgreen.gif" alt=":mrgreen:" title="Pan Zielony" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=850">barszczz</a> — 27 cze 2014, o 05:47</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[barszczz]]></name></author>
<updated>2014-06-25T14:03:24+01:00</updated>
<published>2014-06-25T14:03:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=867&amp;p=85729#p85729</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=867&amp;p=85729#p85729"/>
<title type="html"><![CDATA[Re: bufor cykliczny i rs232]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=867&amp;p=85729#p85729"><![CDATA[
Nawiązując ponownie do znaku &quot; , &quot; i sposobu umieszczenia 2 znaków ASCII jako Bajt w jednej komórce tablicy postanowiłem zrobić mały pseudokod w celu upewnienia się czy dobrze to rozumiem.<br /><br />Dane nadchodzące z PC wyglądają następująco:<br /><br />(Numer Paczki=1)<br />,E9,00,00,00,00,00,E9,00,00,00,00,00,00,00,00,00,E9,E9,00,00,00,00,E9,00,00,00,00,00,00,00,00,E9,00,00,00,00,00,00,00,00,00,00<br /><span style="color: #BF0080">od razu po niej wyslana</span><br />(Numer Paczki=2)<br />,E9,00,00,00,00,00,E9,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,E9,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00<br /><br />Dane to stringi, które są podzielone na kilka ‘paczek’ po około 130 znakow. W tym przykładzie dla kilku pinów ustalam PWM na poziomie 233, gdzie E9= 1110 1001.<br /><br /><br />Pseudokod:<br /><br />[syntax=c]uint8_t Tablica&#91;252&#93;;<br />char IDX_bajt = 1;<br />uint8_t IDX_tab = 0;<br /><br />while(1) {<br /><br />char data= get_uart_C();<br />If (( data == ’,’ ) &amp;&amp; (IDX_bajt==2)) {<br />IDX_bajt=1;<br /><br />If(IDX_tab&lt;252) {<br />IDX_tab++;<br />}<br />else {<br />IDX_tab=0;<br />}<br />}<br /><br />If (( data != ’,’ ) &amp;&amp; (IDX_bajt==1) &amp;&amp; ( data != ’\r’ )) {<br />Tablica&#91; IDX_tab &#93;= atoi (data) &lt;&lt;4;                                     //  znak E = 1110   po przesunięciu o 4 miejsca 1110 0000 <br />IDX_bajt++;<br />}<br />else if (( data != ’,’ ) &amp;&amp; (IDX_bajt==2) &amp;&amp; ( data != ’\r’ )) {<br />Tablica&#91; IDX_tab &#93;= Tablica&#91; IDX_tab &#93; &amp; atoi (data);            //   1110 0000 &amp; 0000 1001 (9) --&gt; 1110 1001 (233)<br />}<br />}<br />}[/syntax]<br /><br />Czy takie wyłapywanie znaków ' , ' i wsadzenie dwóch znaków ASCII jako jeden bajt się sprawdzi ? A może jest jakiś inny magiczny chwyt  <img src="https://forum.atnel.pl/images/smilies/icon_twisted.gif" alt=":twisted:" title="Szalony" />  ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=850">barszczz</a> — 25 cze 2014, o 14:03</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[barszczz]]></name></author>
<updated>2014-06-23T16:08:22+01:00</updated>
<published>2014-06-23T16:08:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=867&amp;p=85496#p85496</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=867&amp;p=85496#p85496"/>
<title type="html"><![CDATA[Re: bufor cykliczny i rs232]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=867&amp;p=85496#p85496"><![CDATA[
Jak zwykle podpowiedz ekspresowa <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> dzięki za znalezienie chwilki...<br /><div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />jak masz np 860 bajtów do przesłania to możesz je nawet przesłać przy buforze 32 bajty !! albo i 16 bajtów a nawet 8 bajtów  itp itd<br /></div><br />W sumie chciałem zapytać się o to wcześniej. W tym wypadku przykładowo mając do wysłania 255 bajty i używając bufora 64 bajtowego podzielę np. w programie na PC cały string na 5 paczek, gdzie ze znakiem końcowym CR wysyłane będzie maksymalnie 64 bajty. Następnie w programie na podstawie green booka będzie rozpoznanie komendy, czy to nadlatująca paczka PWM, bądź klawisz startu czy prędkości zmiany ekranu. Jeśli jest to komenda PWM to następuję wyłuskiwanie kolejnych stanów PWM np. oddzielonych przecinkiem &quot;,&quot; gdzie z każdym napotkanym 'separatorem' wzrasta index w tablicy w pamieci kontrolera. Po uzyskaniu wartości indexu 255 licznik sie zeruję a dane są gotowe do wysłania. Czy już nie przekombinowałem ?<br /><br />A tak dodatkowo widzę, że już kilka osób walczyło z binarną transmisją na naszym forum:<br /><a href="http://forum.atnel.pl/topic2050.html"  class="postlink">http://forum.atnel.pl/topic2050.html</a><br /><br />Niestety po przeleceniu postów, nic mi się nie wyjasniło a jedynie pokazuje mi to że jest to znacznie trudniejsze zagadnienie i wiele osób czeka na Pana pomoc w postaci kolejnej książeczki <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=850">barszczz</a> — 23 cze 2014, o 16:08</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-06-23T15:24:50+01:00</updated>
<published>2014-06-23T15:24:50+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=867&amp;p=85490#p85490</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=867&amp;p=85490#p85490"/>
<title type="html"><![CDATA[Re: bufor cykliczny i rs232]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=867&amp;p=85490#p85490"><![CDATA[
może być większy niż 256 <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> hehehe no przecież to ograniczenie wynika z jednej strony TYLKO i wyłącznie z licznika jednobajtowego .... jak chcesz zmieścić w jednym bajcie więcej ?<br /><br />więc musiałbyś przerobić sobie ten licznik na zmienną 16-bitową ale .... oj ale to pociągnie za sobą wiele konsekwencji, nie tylko proste przeróbki kodu ale jeszcze konieczność dodawania atomowego podejścia przy zmianach pozycji w buforze no i ....<br /><br />no i nie wiem czy jest sens, skoro można spokojnie sobie poradzić z małym buforem a przesyłać większe dane kawałkami - co za problem ?<br /><br />jak masz np 860 bajtów do przesłania to możesz je nawet przesłać przy buforze 32 bajty !! albo i 16 bajtów a nawet 8 bajtów <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> itp itd<br /><br />tyle że na większą ilość paczek będzie trzeba podzielić to przesłanie 860 bajtów - ale co za problem ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 23 cze 2014, o 15:24</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[barszczz]]></name></author>
<updated>2014-06-23T15:18:07+01:00</updated>
<published>2014-06-23T15:18:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=867&amp;p=85488#p85488</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=867&amp;p=85488#p85488"/>
<title type="html"><![CDATA[Re: bufor cykliczny i rs232]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=867&amp;p=85488#p85488"><![CDATA[
<div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />to co robisz to się nazywa (tak można to określić) sterownik wyświetlacza RGB  - nawiasem mówiąc fajny cel<br /></div><br /><br />Dziękuję za miłe słowa, zabieram sie do tego jak przysłowiowy pies do jeża, ale postaram się to jakoś ruszyć i potem pokazać efekt końcowy  <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> <br /><br /><div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />jak ładujesz przez RS232 do procka dane to ŁADUJ TO PAN do pamięci RAM najpierw - a nie przesyłaj tego od razu do scalaków WS....<br /></div><br /><br />Tak właśnię planuję, jedynym problemem teraz jest fakt, iż tych danych w moim przypadku jest znacznie, więcej. Jak bawiłem się w zapalanie kilkunastu LED-ów poprzez komendy po UART-cie  przekształcając kody z Green Booka to wszystko obyło ładnie cacy. Teraz &quot;niestety&quot; trzeba użyć już więcej własnej inicjatywy no i zaczynają się schody  <img src="https://forum.atnel.pl/images/smilies/icon_mrgreen.gif" alt=":mrgreen:" title="Pan Zielony" /> <br /><br /><div class="quotetitle">barszczz napisał(a):</div><div class="quotecontent"><br />z drugiej strony tu rozumiem że jest więcej danych do przesłania i wtedy warto rozważyć już transmisję BINARNĄ panie kochany a nie transmisję ASCII ... więc caaaałkiem inne podejście ... bo to może rzeczywiście przyśpieszyć operacje<br /></div><br /><br />Z tego co wyczytałem to szykuje się Pan na omówienie tego zagadnienia w kolejnej, trzeciej biblii  <img src="https://forum.atnel.pl/images/smilies/icon_cool.gif" alt="8-)" title="Cool" /> , zapewne nudzą już Pana pytania o planowaną datę wydania <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> ?<br /><br />Reasumując, chciałbym wpierw zrobić to na ASCII, a jak już się uda to troszkę przysiąść i postaraj się coś wyłuskać dla transmisji binarnej, bo to już znacznie trudniejsze i chyba mniej opisane zagadnienie ?<br /><br />Jeśli chodzi o binarna transmisję to zapewne rozdział o transmisji RC5 w Green Booku powinien mi w tym pomóc ?<br /><br /><br /> O tak jeszcze w celu przypomnienia:<br /> <div class="quotetitle">barszczz napisał(a):</div><div class="quotecontent"><br />W blue book-u znalazlem informacje ze bufer musi byc kolejna potega 2. Oczywiscie to zrozumiale, ale chcialbym sie dowiedziec czemy w naszym przypadku wartosc ta nie moze byc wieksza od 256 ?<br /></div><br /><br />Nie próbowałem jeszcze, ale czy nie mogę tu ustawić większego bufora ? W sumie program ma byc prosty bez dodatkowych wyświetlaczy, czy innych zewnętrznych urządzeń, czy jeśli maksymalna wartość to 256 to nie wystarczyłoby to na moje potrzeby gdzie planuje wysłać stringa z przecinkami w celu wyłuskania 0-255 i ulokowaniu w odpowiednim miejscu w buforze ?<br /><br /><br />Coś czuję, że daleka droga przede mną  <img src="https://forum.atnel.pl/images/smilies/icon_redface.gif" alt=":oops:" title="Zawstydzony" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=850">barszczz</a> — 23 cze 2014, o 15:18</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-06-23T14:29:31+01:00</updated>
<published>2014-06-23T14:29:31+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=867&amp;p=85480#p85480</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=867&amp;p=85480#p85480"/>
<title type="html"><![CDATA[Re: bufor cykliczny i rs232]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=867&amp;p=85480#p85480"><![CDATA[
a no teraz to jaśniej jak dla mnie <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />tyle że podpowiem ci jedną rzecz ....<br /><br />jak ładujesz przez RS232 do procka dane to ŁADUJ TO PAN do pamięci RAM najpierw - a nie przesyłaj tego od razu do scalaków WS....<br /><br />z drugiej strony tu rozumiem że jest więcej danych do przesłania i wtedy warto rozważyć już transmisję BINARNĄ panie kochany a nie transmisję ASCII ... więc caaaałkiem inne podejście ... bo to może rzeczywiście przyśpieszyć operacje <br /><br />to co robisz to się nazywa (tak można to określić) sterownik wyświetlacza RGB <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> - nawiasem mówiąc fajny cel<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 23 cze 2014, o 14:29</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[barszczz]]></name></author>
<updated>2014-06-23T13:29:23+01:00</updated>
<published>2014-06-23T13:29:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=867&amp;p=85466#p85466</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=867&amp;p=85466#p85466"/>
<title type="html"><![CDATA[Re: bufor cykliczny i rs232]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=867&amp;p=85466#p85466"><![CDATA[
<div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />co to ma być ? jak to ma działać .... ?<br /></div><br />widze ze znowu namotalem <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Juz szybko tłumacze jak ja rozumiem swój projekcik i bardzo proszę o naprowadzenie na poprawny tok myślenia.<br /><br />Spory czas temu bawiłem się scalakami dostępnymi na atnel sklep a dokładnie driverami ledów. Topic poniżej:<br /><a href="http://forum.atnel.pl/post72380.html?hilit=ws2803#p72380"  class="postlink">http://forum.atnel.pl/post72380.html?hilit=ws2803#p72380</a><br /><br />Z tego co rozumiem to nie moge wysyłać od razu po SPI odebranych bajtów do scalaka, a mam ich dokładnie 14  <img src="https://forum.atnel.pl/images/smilies/icon_twisted.gif" alt=":twisted:" title="Szalony" />. A planem jest uzyskanie matrycy LED-ow do wyswietlania np. napisow.<br /><br />Zgodnie ze schematem, w celu wysterowania np. 1 scalaka -&gt; jego 18 pinów , musze przeslac po kolei 18 bajtow (144 bitow).<br /><a href="http://www.noodlehed.com/ebay/pics/ws2803data.gif"  class="postlink">http://www.noodlehed.com/ebay/pics/ws2803data.gif</a><br />Analogicznie, jeśli połączyłem kaskadowo więcej driver-ów to do wysterowania wszystkich naraz potrzebuję wysłać większą paczkę danych ze wszystkimi wartości PWM, nawet dla nieaktywnych diod.<br /><br />Dodatkowo planuję np. załadować kilka wzorów do mojego ledowego ekraniku  np. litery:  &quot;A&quot;,&quot;T&quot;,&quot;N&quot;,&quot;E',&quot;L&quot; i wyswietlic je w sekwencji np. co 2 sekundy. Do tego chciałbym, aby wyświetlanie rozpoczęło się po wciśnięciu klawisza START, a zatrzmało się po naciśnięciu STOP.<br /><br />Po wcześniejszych zmaganiach udało mi się wysterować scalak w następujący sposób:<br />[syntax=c]// Buffer na potrzeby wysterowania 1 driver-a<br />uint8_t buffer_clear&#91;&#93; = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };<br />uint8_t buffer_ekran1&#91;&#93; = { 250, 0, 250, 0, 250, 0, 250, 0, 250, 0, 250, 0, 250, 0, 250, 0, 250, 0};<br /> <br />SendSpiBuffer(uint16_t length, uint8_t *buffer); /* wysłanie danych z buffora - SPI */[/syntax]<br /><br />Czyki z palca ustawiałem wartości w bufferze a następnie wysyłałem po kolei bajty poprzez funckję SendSPI.<br /><br />Tym razem rzucając się na głęboką w moim przypadku wodę <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> postanowiłem stworzyć na PC program, ktory z łatwościa generuje mi wzór (ta część juz zrobiona), ustawić jego poziom jasności, następnie załadować go do bufera i po wciśnięciu START wysłać do kontrolera, który wysteruje mi 252 wyjścia, a dokładniej wpierw załąduje wzór do kontrolera a zacznie sekwencję po wciśnięciu START.<br /><br /><br /><br />Mam nadzieję, że w jakiś sposób wytłumaczyłem co mam na myśli i wyjaśniłem jak chcę podejść do tego projektu <img src="https://forum.atnel.pl/images/smilies/icon_redface.gif" alt=":oops:" title="Zawstydzony" /><br />Z góry dzięki za pomoc ! <img src="https://forum.atnel.pl/images/smilies/icon_e_ugeek.gif" alt=":ugeek:" title="Świr, i to jaki!" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=850">barszczz</a> — 23 cze 2014, o 13:29</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-06-23T11:27:13+01:00</updated>
<published>2014-06-23T11:27:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=867&amp;p=85450#p85450</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=867&amp;p=85450#p85450"/>
<title type="html"><![CDATA[Re: bufor cykliczny i rs232]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=867&amp;p=85450#p85450"><![CDATA[
panie, powiedz mi po co ty chcesz wysyłać 255 bajtów z kolejnymi stanami PWM ... co to ma być ? jak to ma działać .... ? <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />co ci da przesłanie 255 bajtów od 0 do 255 ?<br /><br />kompletnie nie rozumiem ? ... czy nie lepiej wysłać stan PWM jako nawet zwykłą liczbę ASCII np 128, i wtedy masz połowę PWM ?<br /><br />chcesz minimum to wysyłasz np 5, chcesz maksimum to wysyłasz 250 .... a procek te same liczby odebrane po RS232 przesyła natychmiast po SPI do innego układu/procka ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 23 cze 2014, o 11:27</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[barszczz]]></name></author>
<updated>2014-06-23T10:35:39+01:00</updated>
<published>2014-06-23T10:35:39+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=867&amp;p=85447#p85447</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=867&amp;p=85447#p85447"/>
<title type="html"><![CDATA[Re: bufor cykliczny i rs232]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=867&amp;p=85447#p85447"><![CDATA[
Witam, <br />Wlasnie znalazlem ta rozmowe, wiec nie bede zakladal nic nowego tylko sie podlacze. W sumie na mysli mam kolejne cwiczenie gdzie tym razem polacze wczesniej przewalkowane bloczki a mianowicie komunikacje rs232 i SPI. Na celu mam zbudowanie prostego programu na PC, w ktorym wybieram dane diody, ustalam ich jasnosc a nastepnie po nacisnieciu klawisza 'Start' uruchamiam je.<br /><br />Ponizej wstawiam graficzna interpretacje <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><a href="http://forum.atnel.pl/_obrazki/o/850/5ef42c98eedafa809a9e17d333865e00.png"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/850/5ef42c98eedafa809a9e17d333865e00.png" alt="Obrazek" /></a><br /><br />A teraz powiem gdzie zaczynaja sie schody i moje watpliwosci. Do wyslania mam 252 bajty opisujace wartosc PWM sterujacy wybrane PINy sterownikow. W blue book-u znalazlem informacje ze bufer musi byc kolejna potega 2. Oczywiscie to zrozumiale, ale chcialbym sie dowiedziec czemy w naszym przypadku wartosc ta nie moze byc wieksza od 256 ?<br />Skoro do wyslania mam 252 bajty, a po zamianie na hex wychodza mi 504 bajty plus znak CR jak podejsc do tego problemu ?<br /><br />Nie mam zadnego doswiadczenia dlatego tez przepraszam za uplyw mojej fantazji i dziwne pomysly, ale chcialbym was prosic o jakies podpowiedzi i najciekawsze rozwiazanie, ktore powinno sie sprawdzic. Wiem, ze pomyslow jest tyle co osob podchodzacych do tego problemu, ale ponizej wypisze to co mi przyszlo do glowy.<br /><br />Zastanawiam sie nad najlatwiejszym i dosc optymalnym rozwiazaniem dla wyslania ''paczki'' i uzyskania tablicy [252 elementowej z decymalnymi wartosciami].<br /><br />Biorac pod uwage, ze wyslane beda nie tylko dane odnosnie wartosci PWM, ale tez polecenie START, STOP, oraz np. czas po ktorym diody maja zostac zgaszone i itd. myslalem nad zliczaniem odebranych znakow CR i po odebraniu wielokrotnosci 2 zwiekszac licznik a tym samym Index tabeli, ktora po zapelnieniu 252 bajtow zostanie wyslana po wyslaniu komendy Start. Oczywiscie przed kazda wartoscia PWM bedzie komenda np. 'PWM='. Problem jaki tu widze to dodatkowe bajty dla kazdej wartosci PWM ( np. PWM=' hex (0-255) ') a do wyslania mam ich 252, wiec dodatkowo 252* 4 bajty do wyslania.<br /><br />Moze zamiast myslec o wysyalaniu kazdej wartosci PWM pojedynczo lepszym rozwiazaniem bedzie polaczenie 252 stanow PWM w jeden string, gdzie kazde 2 bajty oddzielone beda np. przecikiem ',':<br /><a href="http://forum.atnel.pl/_obrazki/o/850/ed57ca45ee3c8716611304c61db97558.png"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/850/ed57ca45ee3c8716611304c61db97558.png" alt="Obrazek" /></a><br /><br />W tym wypadku komenda 'PWM=' i sklejony string dla wszystkich 252 wartosci PWM np.-&gt; 'AE,FE,D9,EA.....' da nam dodatkowe 4 bajty dla komendy i 252 dodatkowe bajty dla przecinka i koncowego CR, co w porownaniu do wczesniejszego przykladu oszczedzi mi sporo bajtow i oszczedzi problemow przy kodowaniu. Nastepnie wydzielenie pojedynczych 2 bajtowych tokenow i ulokowaniu ich do odpowiednich indexow w tabeli czekajacej na wysylke do sterownika.  No tak, ale przy takim podejsciu powinienem miec bufer nie mniejszy niz 4+504+252, wiec (2^10 = 1024)  ?<br />Czy ide w dobrym kierunku a moze juz dawno zabladzilem <img src="https://forum.atnel.pl/images/smilies/icon_rolleyes.gif" alt=":roll:" title="Udaje, że to nie on" />  ?<br /><br />Z gory dzieki za wszelkie podpowiedzi !<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=850">barszczz</a> — 23 cze 2014, o 10:35</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-02-24T16:39:19+01:00</updated>
<published>2012-02-24T16:39:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=867&amp;p=3454#p3454</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=867&amp;p=3454#p3454"/>
<title type="html"><![CDATA[Re: bufor cykliczny i rs232]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=867&amp;p=3454#p3454"><![CDATA[
<div class="quotetitle">marthinek napisał(a):</div><div class="quotecontent"><br />UART_putchar(233); a on po prostu musi mi to zamienić na krzaczek ASCII bo tak ma <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";-)" title="Puszcza oko" /><br /></div><br /><br />O to właśnie chodzi <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br /><div class="quotetitle">marthinek napisał(a):</div><div class="quotecontent"><br />dzięki. sorry, że tak dużo czasu to zajęło.<br /></div><br /><br />Nie ma za co i bardzo dobrze że taka dyskusja się wywiązała tu na forum - bo nie myśl, że tylko ty się na tym zaciąłeś - takie a nawet jeszcze gorsze problemy przez to - ze zrozumieniem tego ma mnóstwo osób na starcie - dlatego fajnie, że będą mogli to poczytać poza wyjaśnieniami w książce.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 24 lut 2012, o 16:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[marthinek]]></name></author>
<updated>2012-02-24T16:31:41+01:00</updated>
<published>2012-02-24T16:31:41+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=867&amp;p=3451#p3451</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=867&amp;p=3451#p3451"/>
<title type="html"><![CDATA[Re: bufor cykliczny i rs232]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=867&amp;p=3451#p3451"><![CDATA[
no ok, czyli cały &quot;problem&quot; leży po stronie terminala, który tak został zaprogramowany, aby ze wszystkiego co się da robić znaki literowe<br /><br />nikt nie mówi o czarach-marach, to nie nauka religii tylko programowania <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";-)" title="Puszcza oko" /> tutaj są same konkrety (z wyjatkiem stanów nieustalonych na pinach mikroklocka <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";-)" title="Puszcza oko" /> )<br /><br />ok, czaję już chyba wszystko. terminal mi tu namieszał, bo liczyłem na to że uda sie go zmusic do pokazania liczby 233 (dla ścisłości -liczyłem właśnie na nieprzetworzoną postać czyli 11111110), po wysłaniu z mikroklocka<br />UART_putchar(233); a on po prostu musi mi to zamienić na krzaczek ASCII bo tak ma <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";-)" title="Puszcza oko" /><br /><br />dzięki. sorry, że tak dużo czasu to zajęło.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=222">marthinek</a> — 24 lut 2012, o 16:31</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-02-24T16:18:24+01:00</updated>
<published>2012-02-24T16:18:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=867&amp;p=3450#p3450</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=867&amp;p=3450#p3450"/>
<title type="html"><![CDATA[Re: bufor cykliczny i rs232]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=867&amp;p=3450#p3450"><![CDATA[
Nie zrozum mnie źle za nic nie pobiję <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> - żartuję sobie <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />ale wracając do twoich pytań - to pomyśl sobie - ty chcesz traktować terminal jak coś super inteligentnego co na dodatek odgadnie twoje myśli chyba <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> no bo jak inaczej ? skoro piszesz czy terminal wyświetli znak A po otrzymaniu liczby 65. No pewnie że wyświetli bo to teminal panie - terminal znakowy i skąd pomysł żeby on ci to wyświetlał np w postaci ŁAŃCUCHA ASCII np tak: 1000001 ???? To już jest C-String a nie żadna reprezentacja binarna liczby rozumiesz ???? To musiałbyś:<br /><br />1. albo napisać sobie własny program na PC który odebraną liczbę zamieni na postać binarną czyli tak na prawdę mówimy na postać łańcucha tekstowego składającego się z wielu znaków ASCII 0 i 1<br /><br />2. albo właśnie - albo - dokonać tej konwersji już w mikrokontrolerze za pomocą ITOA() z parametrem radix=2<br /><br />funkcja ITOA() panie - zamieni twoją liczbę na ŁAŃCUCH TEKSTOWY - czyli C-String a następnie wyślesz bajt po bajcie te zera i jedynki jak oddzielne bajty o kodach znaków ASCII = 0 lub = 1<br /><br />nie ma że CZARY - MARY - i terminal zrobi to jakie ty będziesz miał pobożne życzenie niestety <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> ale już twój program własny może to zrobić - nie ma problemu<br /><br />Tylko musisz sobie w głowie rozgraniczyć to wszystko - samo nic się nie zrobi. Zatem przesłanie liczby 233 w postaci łańcucha C-String da nam w terminalu trzy znaki ASCII '233' (zrobisz to za pomocą IDOA()<br /><br />ale jak wyślesz:<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">UART_putchar(233);</div><br /><br />no to wtedy poleci tylko jeden bajt do terminala - tyle że na jego ekranie zobaczysz tylko jeden znak - jakiś ptaszek/krzaczek jak ja to mówię - taki, który odpowiada w ASCII temu kodowi - i to się nazywa transmisja binarna<br /><br />a jak liczbę 233 zamienisz np funkcją ITOA() na ŁAŃCUCH TEKSTOWY - i wyślesz string na UART (czyli 3 bajty) to otrzymasz prezentację ASCII dziesiętnej formy tej liczby 233 jeśli parametrem radix itoa będzie 10, albo prezentację ASCII binarnej formy tej liczby 11101001 tylko teraz przez UART już poleci 8 znaków ASCII<br /><br />możesz też użyć radix=16 w ITOA() to wtedy polecą dwa bajty hexadecymalnej formy liczby czyli E9<br /><br />REASUMUJĄC - nie licz na to, że terminal ma obowiązek coś ci tam przeliczać co ci się żywnie podoba - terminal został stworzony do transmisji i komunikacji znakowej. Dlatego gdy mu puścisz binarne dane to nie dziw się że w oknie terminala pojawi się po prostu sieczka <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> — 24 lut 2012, o 16:18</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[marthinek]]></name></author>
<updated>2012-02-24T16:20:21+01:00</updated>
<published>2012-02-24T14:18:04+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=867&amp;p=3448#p3448</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=867&amp;p=3448#p3448"/>
<title type="html"><![CDATA[Re: bufor cykliczny i rs232]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=867&amp;p=3448#p3448"><![CDATA[
Ok, po kolei i od początku.<br /><br />zdaję sobie sprawę że tabela znaków ASCII to taki klucz do szyfru. Nie bardzo sobie wyobrażam w technice cyfrowej, gdzie dysponujemy tylko zerami i jedynkami, przesłać coś co nie jest liczbą. Po to cała ta tabela powstała, żeby przypisać znakowi 'A' jakąś liczbę, padło na '65'.<br />Program dostaje liczbę zapisaną binarnie w postaci 01000001, porównuje z tabelą ASCII i wyświetla znak A.<br /><br />z tymi typami, to własnie mi się z jakichś pradawnych czasów nałożyło, jak próbowałem coś w C pisać, że typ char jest tylko typem znakowym.<br />zresztą tam chyba nawet jak się wrzuciło w char'a wartość liczbową to kompilator zgłaszał warning albo i error.<br />do przekazywania liczb służyły inty floaty, etc.<br /><br />no i chodzi mi o to, żeby ominąć tą konwersję na znaki ASCII, jak terminal dostanie liczbę 01000001, to niech mi ją napisze w takiej postaci (binarnej), albo przeliczy to na postać dziesiętną, ale niech nie przelicza na system ASCII.<br /><br />Oczywiście, można składać liczby i kazać mu wyświetlić: <br />liczbę '13' w postaci wysłania dwóch liczb odpowiadających cyfrze 1 i później cyfrze 3 <br /><br />ale załóżmy, że chcę wysłać właśnie '13'<br />czyli 00001101 i w oknie terminala (czy innego programu na kompie zczytującego z portu COM)  chcę mieć postać taką właśnie, czyli binarną. Sam sobie później przeliczę to na system 10tny, 16tkowy czy jaki inny zapragnę niech mnie w tym nikt nie wyręcza <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";-)" title="Puszcza oko" /><br /><br />no i rozumiem, że problem stoi po stronie oprogramowania zewnętrznego, bo jak wpiszę:<br />UART_putchar(65); to mój mikroklocek wyśle radośnie po linii TX zakodowaną binarnie liczbę 65. a że terminal to zinterpretuje jako A, to już jest problem terminala...?<br /><br /><br />Edit:<br />Ok pójdźmy dalej, bo i char i int8_t ważą 1 bajt, tyle co rejestr nadawczy UDR.<br />czyli dopóki przesyłam wartości z zakresu 0-254 jest git.<br /><br />jakbym chciał władować teraz pełnego inta, zajmującego 2 bajty to muszę podzielić go na młodszą i starszą część i najpierw władować jedną, potem drugą a w urządzeniu odbiorczym to sobie skleić z powrotem?<br />i w tym momencie wysyłanie liczby 2 bajtowej w postaci znaków ASCII zaczyna być zrozumiałe i prostsze, bo się nie bawię w systemy big endian czy small endian tylko &quot;wyłuskuje&quot; z mojej dużej liczby kolejne cyferki i je wysyłam, a potem tylko odtwarzam po stronie odbiorcy i do tego celu mi  właśnie funkcja itoa.<br /><br />No tylko znowu... itoa mi to przelicza na liczbę binarną, a potem to jest transmitowane po kolei... czyli tak, mamy liczbę przykładowo:<br />300 (dziesiętnie), po działaniu funkcją itoa przy podstawie 2 robi nam się z tego: 100101100, a następnie wszystko jest wysyłane funkcją UART_putchar(), ale po kolei, czyli rozpisując:<br /><br />UART_putchar('0')<br />UART_putchar('0')<br />UART_putchar('1')<br />UART_putchar('1')<br />UART_putchar('0')<br />itd...<br /><br />a każde wysłanie takiego '0' czy '1' wiąże się z wysłaniem 8 bitów... które terminal odczyta, porówna ze swoją tabelą ASCII i wyświetli to co sobie dopasuje..<br /><br />PS. tak wiem, ze to idiotyczne lepiej przesłać '300' czyli '3' , '0', '0' ,a potem to sobie przeliczyć na binarny jeśli się uprę że chcę binarnie. ale chodzi mi bardziej o idee i zrozumienie wszystkiego a  nie o ergonomiczne działanie. więc nie bij za to <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";-)" title="Puszcza oko" /><br /><br /><br /><br /><br />Popraw mnie jak znowu gdzieś błądzę... <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=222">marthinek</a> — 24 lut 2012, o 14:18</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-02-24T13:48:16+01:00</updated>
<published>2012-02-24T13:48:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=867&amp;p=3445#p3445</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=867&amp;p=3445#p3445"/>
<title type="html"><![CDATA[Re: bufor cykliczny i rs232]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=867&amp;p=3445#p3445"><![CDATA[
<div class="quotetitle">marthinek napisał(a):</div><div class="quotecontent"><br />przy założeniu transmisji ramki 8 bit to wg mnie powinna się wysłać ramka składająca się właśnie z liczby odpowiadającej znakowi 'A' w kodzie ASCII w jej binarnie zapisanej formie czyli: 01000001<br /></div><br /><br />Odpuść sobie myślenie na razie o ramkach, o ilości bitów w ramkach i takich tam pierdókach <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />Skup się teraz na tym co powiedziałeś i słusznie, że powinna być przesłana liczba odpowiadająca znakowi 'A' w kodzie ASCII. <br /><br />No więc właśnie - zobacz sam sobie odpowiedziałeś na poprzednie wątpliwości - bo o jakiej ty tu konwersji z ASCII na liczby mówisz albo odwrotnie ????? <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />Nie tylko, że nie potrzeba żadnej konwersji robić - ale po prostu nie ma czegoś takiego jak konwersja ASCII na liczbę albo liczby na ASCII w tym rozumieniu o jakie pytasz .... <br /><br />KAŻDY znak ASCII jest tylko i wyłącznie liczbą i niczym innym. Dlatego po co się zastanawiasz jaki typ dać dla znaku ASCII czy unsigned char? czy char? czy uint8_t?<br /><br />każdy będzie dobry - tyle że automatycznie i domyślnie masz robioną konwersję char do unsigned char przez kompilator - dlatego wpisywanie unsigned char jest po prostu wg mnie bez sensu przez ludzi. Chyba że się wyłączy tę opcję kompilatora, bo można to wtedy trzeba byłoby wpisywać unsigned char.<br /><br />A w książce pisałem, że dla znaków, dla stringów dajemy zwykle typ char nie dlatego że TAK MUSI BYĆ I KONIEC !!!! .... tylko dlatego, że panie kochany jak ja w twoim kodzie zobaczę np coś takiego:<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">char buf&#91;10&#93;;<br />uint8_t tab&#91;20&#93;;</div><br /><br />to od razu się domyślę na tym etapie że w buf będziesz pewnie przechowywał znaki ASCII (ale też przecież normalne liczby) .... i że będzie on gdzieś wykorzystywany np w funkcjach komunikacji UART, LCD i tym podobnych - rozumiesz ?<br /><br />A niepotrzebnie wmieszałeś w tę konwersję funkcję ITOA - bo wynika z tego że właśnie - nie wiesz co to znaczy konwersja liczb ale na format ASCII..... co to oznacza?<br /><br />ano że jak np chcesz wysłać liczbę 13 do terminala - i teraz zastanów się jaki chcesz uzyskać efekt w terminalu ? taki że na ekranie pojawią ci się dwa znaki 1 i 3 czy chcesz żeby zadziałało to jak kliknięcie entera czyli przejście do kolejnej linii ????<br /><br />jeśli ma zadziałać jako znak ENTER czyli CR to po prostu wysyłam:<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">UART_putchar(13);</div><br /><br />ale jeśli chcę żeby pojawiła się liczba w postaci dwóch znaków to mogę to np wysłać tak:<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">UART_putchar('1');<br />UART_putchar('3');</div><br /><br />widzisz różnicę tego co będzie się działo w terminalu ....<br /><br />i dlatego żeby nie trzeba było np liczby 233 wysyłać wpisując siedem takich linii można wtedy zastosować konwersję tej liczby do stringa ITOA() albo LTOA()<br /><br />Pisałeś tak:<br /><br /><div class="quotetitle">marthinek napisał(a):</div><div class="quotecontent"><br />bez względu co się poda na, czy &quot;unsigned char data &quot; czy &quot;uint8_t data&quot;<br />i tak wysyła wszystko w postaci znaków ASCII.<br /></div><br /><br />Ale o czym ty mówisz ? - co to znaczy wg ciebie że przesyła w postaci znaków ASCII ? dziwisz się, że wysyłając liczbę UDR=65 - widzisz w terminalu znak A ????? No coś ty - to normalne - terminal odebrał liczbę 65 - a jest to panie kochany terminal czyli coś co działa w trybie znakowym - to co miał wg ciebie pokazać ???? 65 ? <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> przecież &quot;65&quot; to są dwa znaki ASCII o różnych kodach a ty wysłałeś tylko liczbę 65 która jest znakiem ASCII A<br /><br /><br /><br /><div class="quotetitle">marthinek napisał(a):</div><div class="quotecontent"><br />Jedynie funkcja itoa z parametrem 2 pozwala mi przesyłać binarną postać liczb (jedynki i zera) albo liczby w systemie dziesiętnym.. a nie da się bez tego itoa?<br /></div> <br /><br />Pewnie, że można bez itoa() - napisz sobie własną funkcję do konwersji liczb na postać/format ASCII - masz przykład takiej własnej funkcji w rozdziale o ADC gdzie chodzi tam o wyświetlanie wyników <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br /><br /><div class="quotetitle">marthinek napisał(a):</div><div class="quotecontent"><br />gdzie następuje to przekształcenie z liczby na znak ASCII?<br /></div><br /><br />Przede wszystkim musisz rozróżnić LICZBĘ od CYFRY bo tu się kręcisz troszeczkę....<br /><br />popatrz np napiszę sobie taką pętlę, która wyśle do terminala w postaci znaków ASCII cyfry 0d 0 do 9<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">uint8_t i;<br />for(i=0;i&lt;10;i++) {<br />   UART_putchar( i + '0' );<br />}</div><br /><br />spróbuj przeanalizować sobie jak to działa <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> - a to jest właśnie super prosta konwersja liczb a w zasadzie cyfr!!!!! na znaki ASCII bo przecież tą metodą nie wyślę liczby 10 czy 129, czy 1202323223 - dlaczego ? no pomyśl<br /><br />Ale za to wiedząc to co wyżej się dzieje w tej pętli to spokojnie zrozumiesz jak działa ta funkcja opisana w rozdziale o ADC OK?<br /><br />Mam nadzieję, że chociaż troszkę rozjaśniłem sytuację - czy nie za bardzo?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 24 lut 2012, o 13:48</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[marthinek]]></name></author>
<updated>2012-02-24T13:34:41+01:00</updated>
<published>2012-02-24T13:34:41+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=867&amp;p=3444#p3444</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=867&amp;p=3444#p3444"/>
<title type="html"><![CDATA[Re: bufor cykliczny i rs232]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=867&amp;p=3444#p3444"><![CDATA[
Po wgraniu wszystkich kombinacji na procka, w terminalu dla wszystkich wartości dostaję (widzę) znak 'A'<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=222">marthinek</a> — 24 lut 2012, o 13:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[marthinek]]></name></author>
<updated>2012-02-24T13:10:57+01:00</updated>
<published>2012-02-24T13:10:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=867&amp;p=3443#p3443</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=867&amp;p=3443#p3443"/>
<title type="html"><![CDATA[Re: bufor cykliczny i rs232]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=867&amp;p=3443#p3443"><![CDATA[
ok, pisze jak myślę, poprawiaj:<br /><br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />UART_putchar('A');<br /><br />co zostanie wysłane tym poleceniem do terminala ? znak ASCII jak piszesz 'A' czy liczba ?<br /></div><br /><br />przy założeniu transmisji ramki 8 bit to wg mnie powinna się wysłać ramka składająca się właśnie z liczby odpowiadającej znakowi 'A' w kodzie ASCII w jej binarnie zapisanej formie czyli: 01000001<br /><br /><br />to samo w pozostałych przypadkach, bo wszystkie podane przez Ciebie wartości =65 (w syst dziesiętnym)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=222">marthinek</a> — 24 lut 2012, o 13:10</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-02-24T11:50:29+01:00</updated>
<published>2012-02-24T11:50:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=867&amp;p=3442#p3442</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=867&amp;p=3442#p3442"/>
<title type="html"><![CDATA[Re: bufor cykliczny i rs232]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=867&amp;p=3442#p3442"><![CDATA[
<div class="quotetitle">marthinek napisał(a):</div><div class="quotecontent"><br />gdzie następuje to przekształcenie z liczby na znak ASCII?<br /></div><br /><br />No widzisz to jest KULCZ do zrozumienia wszystkiego - a brak tego zrozumienia powoduje ogromny wyłom w myśleniu, wypacza je i człowiek zawsze kombinuje pod górkę, tymczasem żeby pomóc ci zrozumieć jakie to proste (aż się zdziwisz) .... zadam ci pytania 2 a ty spróbuj na nie odpowiedzieć ok?<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">UART_putchar('A');</div><br /><br />co zostanie wysłane tym poleceniem do terminala ? znak ASCII jak piszesz 'A' czy liczba ?<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">UART_putchar(65);</div><br /><br />Mogę tak w ogóle napisać? a jeśli tak to co zostanie wysłane do terminala znak ASCII czy liczba 65 ?<br /><br />zastanów się dobrze zanim odpowiesz <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />A na deser w razie czego dodatkowe pytania:<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">UART_putchar(0x41);<br /><br />UART_putchar(0b01000001);</div><br /><br />co tym razem zostanie wysłane do terminala ?<br /><br />(proszę, żeby nikt inny na razie na to nie odpowiadał dobrze ?)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 24 lut 2012, o 11:50</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[marthinek]]></name></author>
<updated>2012-02-24T09:45:56+01:00</updated>
<published>2012-02-24T09:45:56+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=867&amp;p=3441#p3441</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=867&amp;p=3441#p3441"/>
<title type="html"><![CDATA[Re: bufor cykliczny i rs232]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=867&amp;p=3441#p3441"><![CDATA[
<div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />Tymczasem jak już się pozna sposób - to okazuje się, że nagle czar transmisji binarnej pryska jak bańka mydlana <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> nie mówię, że jej nie stosuję bo czasem po prostu trzeba i już .... <br /><br />ale jak mam zrobić coś na szybko to MILION razy wolę zrobić to po ASCII ....<br /></div><br />Ok, a z czystej ciekawości, to jak to zrobić normalnie na liczbach?<br /><br />W całej tej funkcji z datasheeta:<br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">void USART_Transmit( unsigned char data )<br />{<br />/* Wait for empty transmit buffer */<br />while ( !( UCSRA &amp; (1&lt;&lt;UDRE)) )<br />;<br />/* Put data into buffer, sends the data */<br />UDR = data;<br />}<br /></div><br /><br />bez względu co się poda na, czy &quot;unsigned char data &quot; czy &quot;uint8_t data&quot;<br />i tak wysyła wszystko w postaci znaków ASCII. Jedynie funkcja itoa z parametrem 2 pozwala mi przesyłać binarną postać liczb (jedynki i zera) albo liczby w systemie dziesiętnym.. a nie da się bez tego itoa?<br /><br />gdzie następuje to przekształcenie z liczby na znak ASCII?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=222">marthinek</a> — 24 lut 2012, o 09:45</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[marthinek]]></name></author>
<updated>2012-02-23T02:33:14+01:00</updated>
<published>2012-02-23T02:33:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=867&amp;p=3377#p3377</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=867&amp;p=3377#p3377"/>
<title type="html"><![CDATA[Re: bufor cykliczny i rs232]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=867&amp;p=3377#p3377"><![CDATA[
Ha ha.. oj jakby mi się przydała ta pozycja teraz.. &amp;#125 właśnie podłączyłem RMF01 i 02 do procków<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=222">marthinek</a> — 23 lut 2012, o 02:33</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-02-23T00:50:28+01:00</updated>
<published>2012-02-23T00:50:28+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=867&amp;p=3360#p3360</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=867&amp;p=3360#p3360"/>
<title type="html"><![CDATA[Re: bufor cykliczny i rs232]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=867&amp;p=3360#p3360"><![CDATA[
Tak po części inspirację do opisów pewnych zagadnień biorę z różnych forów internetowych jak widzę, że mnóstwo osób ma wciąż podobne problemy z tą samą rzeczą - a jakoś nikt nie udzielił pełnej wyczerpującej odpowiedzi, która by pomogła albo sam jej też nie rozumiem. Zresztą jak widać po tym co i jak opisuję niestety pewne tematy (ale to wg mnie) nie nadają się po prostu do wyjaśnienia na forum gdy dotyczą zbyt rozległych zagadnień....<br /><br />..... druga rzecz, która mnie inspiruje to moje własne problemy jak np z transcieverami Hoperf - bo od wielu miesięcy nie mogłem sobie z nimi poradzić chociaż kilka razy się za nie zabierałem. Aż w końcu postawiłem sobie cel - KONIEC - teraz muszę je opisać do książki, żeby później samemu mieć zawsze pod ręką taki opis jaki sam bym chciał znaleźć w jakiejś tam książce - a go nie ma nigdzie przecież ..... I akurat z tymi ranscieverami o mało co nie poległem i to przez nie m.in mam takie duże opóźnienie z wydaniem tej książki - już dwa razy rzuciłem modułami o podłogę a raz miałem ochotę je podeptać i zapomnieć - i w zamian opisać coś innego - ale się powstrzymałem przed zdeptaniem - chociaż miałem straszliwego nerwa jak to się mówi i z przekrwionymi oczami jak koci wilkołak jeszcze raz zasiadłem - mówiąc sobie &quot;albo ja albo one&quot; ..... no i w końcu po długiej i nierównej walce wygrałem .... Mam też nadzieję, że dzięki temu uda mi się zaprezentować coś - czego nie znajdzie się jak dotąd nie tylko w żadnej książce ale i nigdzie w internecie - tak troszkę chociaż nieskromnie powiem - no bo też nie ukrywam że teraz jestem w nich zakochany - jak mam takie biblioteki do ich obsługi <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> .... dlatego opis w książce akurat ich to będzie wręcz jak bezpośrednia relacja CNN z obszaru wojny - ostrych walk <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> .... i mam nadzieję, że chociaż z tego powodu warto będzie może poczekać na nią jeszcze trochę <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> — 23 lut 2012, o 00:50</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[marthinek]]></name></author>
<updated>2012-02-22T23:18:51+01:00</updated>
<published>2012-02-22T23:18:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=867&amp;p=3350#p3350</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=867&amp;p=3350#p3350"/>
<title type="html"><![CDATA[Re: bufor cykliczny i rs232]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=867&amp;p=3350#p3350"><![CDATA[
poczekamy... nie wiem tylko czy czerpiesz inspirację z takich dyskusji na forum, czy to dla Ciebie odskocznia, ale może zamiast się rozpraszać... to pisać i wydawać....? <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";-)" title="Puszcza oko" /><br /><br />//PS. broń Boże nie mówię Ci co masz robić <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=222">marthinek</a> — 22 lut 2012, o 23:18</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-02-21T17:08:25+01:00</updated>
<published>2012-02-21T17:08:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=867&amp;p=3225#p3225</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=867&amp;p=3225#p3225"/>
<title type="html"><![CDATA[Re: bufor cykliczny i rs232]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=867&amp;p=3225#p3225"><![CDATA[
<div class="quotetitle">marthinek napisał(a):</div><div class="quotecontent"><br />PS. a powiesz czemu naciskasz na transmisję po ascii? Trzeba przy tym wykonywać wszystkie te rzutowania intów na chary a później odwrotnie<br /></div><br /><br />Powiem tak dawno dawno temu gdy sam początkowałem jeszcze na 8051 i gdy pierwszy raz spotkałem się z transmisją RS232 - to tak jak każdy chyba początkujący (chociaż wtedy programowałem tylko w asm - bo C dla procków nie było jeszcze na świcie) ...... transmisja binarna wydawała mi się łatwiejsza z tych powodów o których ty napisałeś <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> ..... no i zaczynałem - a kłopotów było że szok, nie mówiąc że wciąż pod górkę <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />Tymczasem jak już się pozna sposób - to okazuje się, że nagle czar transmisji binarnej pryska jak bańka mydlana <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> nie mówię, że jej nie stosuję bo czasem po prostu trzeba i już .... <br /><br />ale jak mam zrobić coś na szybko to MILION razy wolę zrobić to po ASCII .... <br /><br />czy uda mi się przekonać ciebie oraz wielu wielu innych podobnie myślących czytelników ? ..... zobaczymy <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> ... choć czuję przez skórę że tak i to bardzo<br /><br />Sam widzę na kursach C po omówieniu takiego sposobu transmisji - jak kursanci otwierają buzię ze zdziwienia, że wcześniej podchodzili do tego jak do ogromnego KUDŁATEGO JEŻA Z KOSMOSU a tymczasem, po bliższym zapoznaniu się okazało się, że to takie przyjemne i jakże pożyteczne zwierzątko.<br /><br />Potem z kolei muszę ich czasem hamować bo popadają w drugą skrajność i nagle wydaje im się, że transmisja binarna już jest niepotrzebna i nigdy nie będą sobie zawracać nią głowy .... ale wtedy mam zawsze jedno pytanie:<br /><br />&quot;a nie chciałbyś mieć możliwości komunikacji po RS485 w standardzie np MODBUS RTU ?&quot;<br /><br />nooooo pewnie że bym chciał - no to teraz dawaj uczyć się tego co niestety rzeczywiście jest wg mnie może nie ciut trudniejsze ile hmmm bardziej kłopotliwe na co dzień <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />Dlatego żałuję bardzo, że tego rozdziału nie będzie jeszcze w tej książce - ale może warto poczekać?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 21 lut 2012, o 17:08</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[marthinek]]></name></author>
<updated>2012-02-21T10:55:44+01:00</updated>
<published>2012-02-21T10:55:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=867&amp;p=3206#p3206</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=867&amp;p=3206#p3206"/>
<title type="html"><![CDATA[Re: bufor cykliczny i rs232]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=867&amp;p=3206#p3206"><![CDATA[
ok. ale teraz już wszystko jasne, że tak działa i tak ma być. chociaż wydaje mi się, że powinien sam zwiększyć sobie (w obsłudze kolejnego przerwania)  &quot;indeks głowy&quot;, tak żeby był różny od indeksu ogona i nie spełniał warunku wejścia do tego zabezpieczenia przed nadpisywaniem.,<br /><br /> ale spoko. Chyba wszystko jasne teraz.<br />Pewnie, rozumiem ze nie da się wszystkiego opisać w ramach jednej książki.., ale juz nie długą będą 3 <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";-)" title="Puszcza oko" /><br /><br />No i najważniejsze jest, tak jak mówisz, złapanie głównej idei potem to już można kombinować <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";-)" title="Puszcza oko" /><br /><br />PS. a powiesz czemu naciskasz na transmisję po ascii? Trzeba przy tym wykonywać wszystkie te rzutowania intów na chary a później odwrotnie<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=222">marthinek</a> — 21 lut 2012, o 10:55</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-02-21T10:36:27+01:00</updated>
<published>2012-02-21T10:36:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=867&amp;p=3205#p3205</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=867&amp;p=3205#p3205"/>
<title type="html"><![CDATA[Re: bufor cykliczny i rs232]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=867&amp;p=3205#p3205"><![CDATA[
aaaaa no teraz to rozumiem - tak masz rację - reakcję na taki błąd czy błędy trzeba sobie zgodnie z tym co pisałem już opracować samemu .... tym się w książce dalej nie zajmowałem niestety - bo trzeba byłoby rozpatrywać zbyt wiele przypadków ale też założeń np czy chcemy realizować transmisję tylko po ASCII którą preferuję tak na marginesie czy np chodzi nam o transmisję binarną - wtedy zaczynają się nieco większe schody ..... no a opisać to wszystko dobrze to temat rzeka. Na początku ważne żeby zrozumieć podstawy działania buforów cyklicznych i obsługi tego w przerwaniach - nie prawda ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 21 lut 2012, o 10:36</p><hr />
]]></content>
</entry>
</feed>