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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2013-07-23T07:19:19+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=3622&amp;mode</id>
<entry>
<author><name><![CDATA[PROTON]]></name></author>
<updated>2013-07-23T07:19:19+01:00</updated>
<published>2013-07-23T07:19:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3622&amp;p=42949#p42949</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3622&amp;p=42949#p42949"/>
<title type="html"><![CDATA[Re: Problem z przetwarzaniem tablicy char]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3622&amp;p=42949#p42949"><![CDATA[
Dodaj plik nagłówkowy string.h<br />[syntax=c]#include &lt;string.h&gt;<br /><br />    void usart_sendframe(char odbiorac, char command, const char *dane)<br />    {<br />            char size = strlen(dane);<br />            char crc = 0;<br />            crc ^= command;<br />     <br />            for(uint8_t x=0; x&lt;size; x++)<br />            {<br />                    crc ^= dane&#91;x&#93;;<br />                    usart_putc(dane&#91;x&#93;); // dodane tylko do debugowania<br />            }<br />           <br />            usart_putc(BIT_START);                  // &#91;0&#93; Bajt startu<br />            usart_putc(odbiorac);                   // &#91;1&#93; Adres odbiorcy<br />            usart_putc(USART_ADR);                  // &#91;2&#93; Adres nadawcy<br />            usart_putc(command);                    // &#91;3&#93; Komenda<br />            usart_putc(size + 48);                  // &#91;4&#93; Rozmiar danych<br />            usart_puts(dane);                               // &#91;5&#93; Dane<br />            usart_putc(crc);                                // &#91;Y&#93; Suma kontrolna<br />            usart_putc(BIT_STOP);                   // &#91;X&#93; Bajt stopu<br />    }[/syntax]<br /><br />I daj znać czy zadziała, nie sprawdzałem tego.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1315">PROTON</a> — 23 lip 2013, o 07:19</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kazzik87]]></name></author>
<updated>2013-07-23T06:57:45+01:00</updated>
<published>2013-07-23T06:57:45+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3622&amp;p=42947#p42947</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3622&amp;p=42947#p42947"/>
<title type="html"><![CDATA[Re: Problem z przetwarzaniem tablicy char]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3622&amp;p=42947#p42947"><![CDATA[
Nie widzę momentu przypisania wartości do zmiennej 'DATA_SIZE'. Może tu leży błąd?<br /><br />Spróbuj zamienić for na:<br />[syntax=c]void usart_sendframe(char odbiorac, char command, const char *dane)<br />{<br />     register char c;     <br />     char size = 0;<br />     char crc = 0;<br />     crc ^= command;<br /> <br />     while ((c = *dane++))<br />     {<br />          if(c)<br />          {<br />               crc ^= c;<br />               size++;<br />          }  <br />     }<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=476">kazzik87</a> — 23 lip 2013, o 06:57</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kazzik87]]></name></author>
<updated>2013-07-22T20:01:47+01:00</updated>
<published>2013-07-22T20:01:47+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3622&amp;p=42862#p42862</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3622&amp;p=42862#p42862"/>
<title type="html"><![CDATA[Re: Problem z przetwarzaniem tablicy char]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3622&amp;p=42862#p42862"><![CDATA[
Ma Pan rację.<br />Jednak nie szukam przyczyn problemów po stronie środowiska <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":-)" title="Szczęśliwy" /> <br />Jak mi coś nie działa to mam jedno rozwiązanie. Skasuj i napisz raz jeszcze - o dziwo zawsze pomaga (żarcik).<br />Przeważnie jak nie mogę znaleźć błędu po długich oględzinach to zmieniam koncepcje (założenia). Szukam innego sposobu rozwiązania algorytmu. Pozwala mi to spojrzeć na problem do rozwiązania z góry.<br /><br />Pozdrawiam<br />Michał<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=476">kazzik87</a> — 22 lip 2013, o 20:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-07-22T19:45:23+01:00</updated>
<published>2013-07-22T19:45:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3622&amp;p=42854#p42854</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3622&amp;p=42854#p42854"/>
<title type="html"><![CDATA[Re: Problem z przetwarzaniem tablicy char]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3622&amp;p=42854#p42854"><![CDATA[
<div class="quotetitle">kazzik87 napisał(a):</div><div class="quotecontent"><br />Ale po odpaleniu zdarza się że program zachowuje się tak jakby mijał if'a nawet jak warunek &quot;jest spełniony&quot;<br /></div><br /><br />No ja mogę na to tylko powiedzieć i wcale nie złośliwie (nie traktuj tak tego proszę) że to niemożliwe, i że w trakcie testowania musiałeś popełniać jakiś błąd <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><br /><br />jak widzisz nie przepadam za Atmel Studio - ale jednak nie uda się powiedzieć, że ono miałoby mieć rzekomo taką wadę bo po pierwsze pominięcie jak mówisz MUSIAŁOBY zależeć od kompilatora a nie środowiska. Środowisko to tylko taki lepszej jakości NOTEPAD.EXE do pisania kodu programu.<br /><br />A skoro sam wiesz że kompilator i w AVR Studio i w Eclipse ten sam - to pomyśl i sam spróbuj określić jaka może być odpowiedź. Ja gdybym był na twoim miejscu to na pewno nie doszukiwałbym się winy w Atmel Studio <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /> szukałbym błędu u siebie do upadłego. Dlatego że jeśli na tak prostej rzeczy gdzieś się wykładasz - to uwierz później przyjdą gorsze zagwozdki ok ?<br /><br />Jak ci coś takiego nie wychodzi i nie wiesz jak to wytłumaczyć sobie - to masz np nasze forum. Nie obawiaj się wtedy z niego skorzystać, pokaż kody jakimi testujesz co sprawdzasz - a nasi &quot;śledczy&quot; na forum na pewno pomogą wyłapać ci BUG'a <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> ja też się staram pomagać - no ale ostatnimi czasy jestem już za wolny okazuje się ..... są tu dużo szybsi i młodsi ode mnie, którzy potrafią szybciej zauważyć babola nawet niż ja <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />Ty też tak kiedyś będziesz wtedy pomagał mam nadzieję - i zobaczysz że dzięki temu sam też się poduczysz <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 22 lip 2013, o 19:45</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kazzik87]]></name></author>
<updated>2013-07-22T18:36:31+01:00</updated>
<published>2013-07-22T18:36:31+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3622&amp;p=42841#p42841</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3622&amp;p=42841#p42841"/>
<title type="html"><![CDATA[Re: Problem z przetwarzaniem tablicy char]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3622&amp;p=42841#p42841"><![CDATA[
Panie Mirku, właśnie żadnych błędów nie wywala <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":-)" title="Szczęśliwy" /><br />Wiem że podstawa C jest taka sama w AVR Studio i Eclipse. <br />Jednak program z zapisem:<br />[syntax=c]int zmienna = 34;<br />if (zmienna)<br />{<br />     //kod<br />}[/syntax]<br />Zostanie prawidłowo skompilowany. Ale po odpaleniu zdarza się że program zachowuje się tak jakby mijał if'a nawet jak warunek &quot;jest spełniony&quot;. I nie wiem czemu.<br />Bardzo często bywało tak że całe dnie męczyłem się z szukaniem byka w kodzie a wystarczyło z<br />[syntax=c]if(zmienna){}[/syntax]zrobić [syntax=c]if(zmienna != 0){}[/syntax] lub [syntax=c]if(zmienna == 0){}[/syntax] Zależy co chcemy uzyskać.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=476">kazzik87</a> — 22 lip 2013, o 18:36</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-07-22T18:19:51+01:00</updated>
<published>2013-07-22T18:19:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3622&amp;p=42834#p42834</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3622&amp;p=42834#p42834"/>
<title type="html"><![CDATA[Re: Problem z przetwarzaniem tablicy char]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3622&amp;p=42834#p42834"><![CDATA[
<div class="quotetitle">kazzik87 napisał(a):</div><div class="quotecontent"><br />Na co dzień używam Atmel/AVR Studio<br /></div><br /><br />To może warto pomyśleć o normalnym Eclipse ? <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> to tak pół żartem pół serio <br /><br />a na poważnie to kompilator jest dokładnie taki sam pod Eclipse jak i pod AvrStudio - więc nie ma czegoś takiego że jeden wykrywa a jeden nie - tym bardziej że tu mamy do czynienia z jedną z PODSTAWOWYCH zasad języka C<br /><br />dzięki czemu nie ważne czy napiszesz<br /><br />[syntax=c]if( 1 )[/syntax]<br /><br />czy<br /><br />[syntax=c]if( 245 )[/syntax]<br /><br />to zawsze będzie TRUE<br /><br />a FALSE będzie TYLKO dla jednego przypadku<br /><br />[syntax=c]if( 0 )[/syntax]<br /><br />więc w pełni uprawniony jest zapis<br /><br />[syntax=c]if( zmienna )[/syntax]<br /><br />i będzie zawsze w każdej odmianie C i pochodnych języków świadczył to samo co<br /><br />[syntax=c]if( zmienna != 0 )[/syntax]<br /><br />a zatem nie ważne jaki kompilator - tu nie może żaden wywalać błędu<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 22 lip 2013, o 18:19</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kazzik87]]></name></author>
<updated>2013-07-22T18:12:17+01:00</updated>
<published>2013-07-22T18:12:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3622&amp;p=42831#p42831</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3622&amp;p=42831#p42831"/>
<title type="html"><![CDATA[Re: Problem z przetwarzaniem tablicy char]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3622&amp;p=42831#p42831"><![CDATA[
Zgadzam się jest to to samo <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":-)" title="Szczęśliwy" />.<br /><br />Na co dzień używam Atmel/AVR Studio i kompilator bardzo często nie widzi tej skróconej wersji :-/ Co mnie bardzo dziwi! Dlatego tak mam że wolę dmuchać na zimne ;-p<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=476">kazzik87</a> — 22 lip 2013, o 18:12</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kazzik87]]></name></author>
<updated>2013-07-22T18:09:54+01:00</updated>
<published>2013-07-22T17:56:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3622&amp;p=42823#p42823</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3622&amp;p=42823#p42823"/>
<title type="html"><![CDATA[Re: Problem z przetwarzaniem tablicy char]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3622&amp;p=42823#p42823"><![CDATA[
To sam sobie odpowiedziałeś że błąd jest podczas liczenia.<br /><br />Wydaje mi się że twój<br />[syntax=c]if(dane&#91;x&#93;)[/syntax]jest błędne. Ponieważ funkcja zlicza także ten pusty znak z końca ciągu!<br />daj;<br />[syntax=c]if(dane&#91;x&#93; != 0)[/syntax]<br />I powiedź co wychodzi?<br /><br />Albo zrób tak:<br />[syntax=c]for(uint8_t x=0; x&lt;(DATA_SIZE-1); x++)<br />        {<br />                if(dane&#91;x&#93;) // opcjonalnie 'dane&#91;x&#93; != 0'<br />                {<br />                        crc ^= dane&#91;x&#93;;<br />                        size++;<br />                }      <br />        }[/syntax]<br /><br />A jak to nie pomoże to spróbuj tak:<br />[syntax=c]char dane&#91;32&#93;;<br />dane&#91;0&#93; = 'O';<br />dane&#91;1&#93; = 'k';<br />// w ten sposób masz na pewno tylko dwie dane!<br /><br />DATA_SIZE = 2; // !!!<br /><br />for(uint8_t x=0; x&lt;(DATA_SIZE-1); x++) // (DATA_SIZE-1) -&gt; da Ci index 0 i 1, a size = 2!<br />        {<br />                if(dane&#91;x&#93;)<br />                {<br />                        crc ^= dane&#91;x&#93;;<br />                        size++;<br />                }      <br />        }[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=476">kazzik87</a> — 22 lip 2013, o 17:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kazzik87]]></name></author>
<updated>2013-07-22T11:55:17+01:00</updated>
<published>2013-07-22T11:55:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3622&amp;p=42736#p42736</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3622&amp;p=42736#p42736"/>
<title type="html"><![CDATA[Re: Problem z przetwarzaniem tablicy char]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3622&amp;p=42736#p42736"><![CDATA[
Dobra wiem o co się rozchodzi.<br /><br />Zrobiłeś sobie licznik danych ale nadal do funkcji wysyłającej &quot;stringa&quot; wstawiasz tego z zerem na końcu (tabelę)! Dopisz sobie funkcję analogiczną do Mirkowej:<br />[syntax=c]void uart_puts(char *s)// wysyła łańcuch z pamięci RAM na UART<br />{<br />  register char c;<br />  while ((c = *s++)) uart_putc(c);// dopóki nie napotkasz 0 wysyłaj znak<br />}[/syntax]tylko że dodaj sobie dodatkowy argument funkcji &quot;size&quot;. Zamiast 'while()' daj 'for()' - chociaż i na 'while()' można to zrealizować <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":-)" title="Szczęśliwy" />. I niech funkcja wyśle tyle znaków ile wynosi 'size'.<br />Chyba dobrze zrozumiałem problem?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=476">kazzik87</a> — 22 lip 2013, o 11:55</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kazzik87]]></name></author>
<updated>2013-07-22T11:32:45+01:00</updated>
<published>2013-07-22T11:32:45+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3622&amp;p=42733#p42733</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3622&amp;p=42733#p42733"/>
<title type="html"><![CDATA[Re: Problem z przetwarzaniem tablicy char]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3622&amp;p=42733#p42733"><![CDATA[
<div class="quotetitle">squeez napisał(a):</div><div class="quotecontent"><br />if(dane[x])<br /></div><br />Czemu to ma służyć?<br /><br />Chyba powinno być coś w ten deseń:<br />[syntax=c]if (dane&#91;x&#93; != 0x0D) // 0x0D -&gt; CR lub 0x0A -&gt; LF lub 0x00 -&gt; NULL[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=476">kazzik87</a> — 22 lip 2013, o 11:32</p><hr />
]]></content>
</entry>
</feed>