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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2012-10-01T21:19:03+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=1605&amp;mode</id>
<entry>
<author><name><![CDATA[shoc]]></name></author>
<updated>2012-10-01T21:19:03+01:00</updated>
<published>2012-10-01T21:19:03+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1605&amp;p=16302#p16302</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1605&amp;p=16302#p16302"/>
<title type="html"><![CDATA[Re: przeslanie tablicy w jednej ramce]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1605&amp;p=16302#p16302"><![CDATA[
Reszta się nie mieści w str4. Pamiętaj zawsze o długości stringa, zakańczaniu go wartością 0 i uważaj na odwoływanie się do wartości z poza zakresu macierzy. <br /><br />PS. lepsza nazwą dla str3 będzie int3 lub coś w tym stylu.<br /><br />Lepszym wyjściem będzie zastosowanie pętli o jakiej pisałem w poprzednim poście - masz większą kontrolę nad generowanym stringiem.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=269">shoc</a> — 1 paź 2012, o 21:19</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[ixxl]]></name></author>
<updated>2012-10-01T20:18:27+01:00</updated>
<published>2012-10-01T20:18:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1605&amp;p=16300#p16300</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1605&amp;p=16300#p16300"/>
<title type="html"><![CDATA[Re: przeslanie tablicy w jednej ramce]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1605&amp;p=16300#p16300"><![CDATA[
To jednak nie koniec...<br /><br />[syntax=c]uint8_t str3[1]={10};<br />char str4[2];<br />char str5[2];<br />for(uint8_t a=0;a&lt;1;a++){<br />sprintf(str4,&quot;%i&quot;,str3[a]);<br />str5[a]=str4[0];<br />}<br />str5[1]=0;<br />[/syntax]<br /><br />przy liczbach dwucyfrowych, w wyniku dostaje tylko pierwsza cyfre.<br />Funkcja sprintf() rozbija cyfry na poszczegolne czesci ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=67">ixxl</a> — 1 paź 2012, o 20:18</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Piotrek_P]]></name></author>
<updated>2012-10-01T19:56:29+01:00</updated>
<published>2012-10-01T19:56:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1605&amp;p=16298#p16298</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1605&amp;p=16298#p16298"/>
<title type="html"><![CDATA[Re: przeslanie tablicy w jednej ramce]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1605&amp;p=16298#p16298"><![CDATA[
<div class="quotetitle">ixxl napisał(a):</div><div class="quotecontent"><br />Wykombinowałem coś takiego:<br /><br />[syntax=c]uint8_t str3[8]={1,2,3,4,5,6,7,8};<br />char str4[8];<br />char str5[8];<br /><br />for(uint8_t a=0;a&lt;8;a++){<br />sprintf(str4,&quot;%i&quot;,str3[a]);<br />str5[a]=str4[0];<br />}[/syntax]<br /><br />w wyniku dostaje w lancuchu str5 '1,2...8+dwa krzaczki'. Moglby mi ktos wyjasnic czemu lancuch nie konczy sie na '8' ? W dodatku dlugosc lancucha wynosi 10 (taki wynik zwraca funkcja strlen()<br /></div><br /><br />Bo te dwa ostatnie bajty to CR+LF (#13#10). Sprintf dodaje te znaczki/krzaczki jako koniec linii.<br /><br />PP<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=290">Piotrek_P</a> — 1 paź 2012, o 19:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[ixxl]]></name></author>
<updated>2012-10-01T19:50:15+01:00</updated>
<published>2012-10-01T19:50:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1605&amp;p=16297#p16297</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1605&amp;p=16297#p16297"/>
<title type="html"><![CDATA[Re: przeslanie tablicy w jednej ramce]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1605&amp;p=16297#p16297"><![CDATA[
Dziękuję kolego za pomoc <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=67">ixxl</a> — 1 paź 2012, o 19:50</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[shoc]]></name></author>
<updated>2012-10-01T19:37:52+01:00</updated>
<published>2012-10-01T19:37:52+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1605&amp;p=16296#p16296</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1605&amp;p=16296#p16296"/>
<title type="html"><![CDATA[Re: przeslanie tablicy w jednej ramce]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1605&amp;p=16296#p16296"><![CDATA[
Informacji możesz szukać głównie tutaj: C:/WinAVR/doc/avr-libc/avr-libc-user-manual/string_8h.html (po polsku pewnie w internecie też się jakieś info znajdzie).<br /><br />Jak najprościej? Nie wiem, ja bym zrobił to tak:<br />- #include &lt;string.h&gt;<br />- stwórz funkcje intArrayToString(char jakiśBuffor[], int macierzIntów[], delimeter),<br />- w funkcji stwórz jakąś zmienną lokalną do przechowywania stringa z liczbą,<br />- for od i=0 do i &lt; rozmiar macierzy intów (sizeof() powinno zadziałać),<br />- zamieniamy daną liczbę z macierzy na stringa funkcją np: dtostrf dla real lub  itoa dla int,<br />- funkcją  strcat łączymy stringi po kolei do jednego bufora (pierwszy string można wrzucić za pomocą strcpy - wtedy przy okazji czyścimy buffor.<br /><br />The end <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> <br /><br />Powinno działać.<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 5 minutach ]</span></strong><br /><br />str5 musi mieć rozmiar o jeden większy i string (macierz char) musi być zakończona wartością 0; <br /><br />W skrócie:<br />char str5[9];<br />...<br />for(...<br />...<br />str5[8] = 0;<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=269">shoc</a> — 1 paź 2012, o 19:37</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[ixxl]]></name></author>
<updated>2012-10-01T19:30:37+01:00</updated>
<published>2012-10-01T19:30:37+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1605&amp;p=16295#p16295</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1605&amp;p=16295#p16295"/>
<title type="html"><![CDATA[Re: przeslanie tablicy w jednej ramce]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1605&amp;p=16295#p16295"><![CDATA[
Wykombinowałem coś takiego:<br /><br />[syntax=c]uint8_t str3[8]={1,2,3,4,5,6,7,8};<br />char str4[8];<br />char str5[8];<br /><br />for(uint8_t a=0;a&lt;8;a++){<br />sprintf(str4,&quot;%i&quot;,str3[a]);<br />str5[a]=str4[0];<br />}[/syntax]<br /><br />w wyniku dostaje w lancuchu str5 '1,2...8+dwa krzaczki'. Moglby mi ktos wyjasnic czemu lancuch nie konczy sie na '8' ? W dodatku dlugosc lancucha wynosi 10 (taki wynik zwraca funkcja strlen()<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=67">ixxl</a> — 1 paź 2012, o 19:30</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[ixxl]]></name></author>
<updated>2012-10-01T15:38:20+01:00</updated>
<published>2012-10-01T15:38:20+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1605&amp;p=16286#p16286</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1605&amp;p=16286#p16286"/>
<title type="html"><![CDATA[Re: przeslanie tablicy w jednej ramce]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1605&amp;p=16286#p16286"><![CDATA[
No tak, ależ to proste  <img src="https://forum.atnel.pl/images/smilies/icon_rolleyes.gif" alt=":roll:" title="Udaje, że to nie on" /><br /><br />Oczywiście, znam i chciałem wykorzystać pętle, tylko nie mam pojęcia jak jej użyć w połączeniu ze sprintf().<br />Bo przecież, taki zapis:<br /><br />[syntax=c]for (uint8_t a=0;a&lt;5;a++){<br />sprintf (str,&quot;%i&quot;,lancuch[a]);<br />}[/syntax]<br /><br />nic mi nie da. Nie chcę gotowego rozwiązania, tylko podpowiedź, jak podejść do tego tematu, tak żeby z tablicy int zrobić string.); ɔıqʎɹʇɐz ǝƃoɯ ǝıu ı ɯɐʞnzs ' ɯɐʇʎzɔ<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=67">ixxl</a> — 1 paź 2012, o 15:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-09-28T08:45:29+01:00</updated>
<published>2012-09-28T08:45:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1605&amp;p=16088#p16088</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1605&amp;p=16088#p16088"/>
<title type="html"><![CDATA[Re: przeslanie tablicy w jednej ramce]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1605&amp;p=16088#p16088"><![CDATA[
No rzeczywiście takie rozwiązanie to mało powiedzieć że mało eleganckie <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /> o żmudności już nie wspomnę szczególnie gdyby tablica miała mieć np 123 elementy<br /><br />A nie znasz takich rzeczy w C jak pętle for(), while() itp ?<br /><br />A nie znasz (jeśli nie to zajrzyj do PDF'a w AvrLibC na dysku w folderze WinAVR) ... takich funkcji wbudowanych jak:<br /><br />strcpy() i w ogóle tych które dokonują operacji na stringach<br /><br />albo nawet prostych do kopiowania zawartości pamięci wprost<br /><br />memcpy() itp<br /><br />Tyle że ty jak widzę tutaj dokonujesz jeszcze konwersji liczby na ASCII, więc pętla for() w rękę <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" />  i sprawa załatwiona w Try-Mi-Ga <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 28 wrz 2012, o 08:45</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[ixxl]]></name></author>
<updated>2012-09-27T22:59:30+01:00</updated>
<published>2012-09-27T22:59:30+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1605&amp;p=16083#p16083</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1605&amp;p=16083#p16083"/>
<title type="html"><![CDATA[przeslanie tablicy w jednej ramce]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1605&amp;p=16083#p16083"><![CDATA[
jak przeslac tablice np. 20 elementowa przez UDP ?<br /><br />Oczywiscie, moge isc po najmniejszej sciezce oporu:<br /><br />[syntax=c]sprintf(str,&quot;%i^%i^%i^%i^%i^%i^%i^%i^%i^%i^%i^%i^%i&quot;,tab[1], tab[2]....tab[20] );[/syntax]<br /><br />ale zmudne to i nieeleganckie.<br />Oczywiscie moge w petli wysylac kazdy element w osobnej ramce i po drugiej stronie zapisac do tablicy, jednak chcialbym,  zeby wszystko poszlo w jednej ramce.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=67">ixxl</a> — 27 wrz 2012, o 22:59</p><hr />
]]></content>
</entry>
</feed>