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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-12-31T01:12:16+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=9905&amp;mode</id>
<entry>
<author><name><![CDATA[driver0207]]></name></author>
<updated>2014-12-31T01:12:16+01:00</updated>
<published>2014-12-31T01:12:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9905&amp;p=111399#p111399</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9905&amp;p=111399#p111399"/>
<title type="html"><![CDATA[Re: Porównywanie zmiennych tekstowych]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9905&amp;p=111399#p111399"><![CDATA[
Kurde jaki kod . Chyba za wysoka półka dla mnie, ja dopiero zaczynam z C . Mimo to  dzięki postaram się przeanalizować dane i coś z tego wyciągnąć. <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=2199">driver0207</a> — 31 gru 2014, o 01:12</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[driver0207]]></name></author>
<updated>2014-12-31T00:09:42+01:00</updated>
<published>2014-12-31T00:09:42+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9905&amp;p=111387#p111387</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9905&amp;p=111387#p111387"/>
<title type="html"><![CDATA[Re: Porównywanie zmiennych tekstowych]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9905&amp;p=111387#p111387"><![CDATA[
Kolego a mam takie pytanko czy jest jakaś funkcja podobna do tej strstr która porównuje znaki ? Przyjmijmy  pobieramy sobie znak z bufora cyklicznego i porównujemy go  z innym i jak się zgadza to rów coś tam.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2199">driver0207</a> — 31 gru 2014, o 00:09</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[driver0207]]></name></author>
<updated>2014-12-30T01:51:51+01:00</updated>
<published>2014-12-30T01:51:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9905&amp;p=111215#p111215</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9905&amp;p=111215#p111215"/>
<title type="html"><![CDATA[Re: Porównywanie zmiennych tekstowych]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9905&amp;p=111215#p111215"><![CDATA[
Dzięki .<br />Zgadza się buduje sobie bibliotekę do ESP8266 i tam muszę czekać na odpowiedzi w formie komend at lub znaków.<br />I przykładowo otrzymywane dane wyglądają +IPD,1:A<br />I tu jak widzisz chcę odebrać samo a i muszę przeszukiwać bufor do momentu odebrania ':' i resztę wrzucić w jakąś zmienną no i oczywiście sprawdzanie komunikacji czyli odpowiedzi &quot;OK&quot;, &quot;FAIL&quot; , &quot;ERROR&quot; .<br /><br />Jeśli masz coś co by pomogło to podrzuć  <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />Dzięki wielkie:)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2199">driver0207</a> — 30 gru 2014, o 01:51</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[atmel]]></name></author>
<updated>2014-12-30T00:26:24+01:00</updated>
<published>2014-12-30T00:26:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9905&amp;p=111205#p111205</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9905&amp;p=111205#p111205"/>
<title type="html"><![CDATA[Re: Porównywanie zmiennych tekstowych]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9905&amp;p=111205#p111205"><![CDATA[
Niestety nie jestem w stanie odpowiedzieć na to pytanie, bo nie wiem jak funkcja &quot;uart_get_str&quot; przetwarza ten &quot;bufor&quot; oraz co zwraca...<br />Mimo wszystko zachowanie jest faktycznie dość nietypowe.<br /><br />Jeśli chodzi o funkcję &quot;ok&quot; to na szybko napisałbym ją np. w ten sposób:<br /><br />[syntax=c]void ok(void)<br />{<br />char bufor&#91;2&#93;;<br />do {<br />while (!(UCSRA &amp; 1&lt;&lt;RXC));<br />bufor&#91;0&#93; = UDR;<br />while (!(UCSRA &amp; 1&lt;&lt;RXC));<br />bufor&#91;1&#93; = UDR;<br />} while (strncmp(bufor, &quot;OK&quot;, 2));<br />}[/syntax]<br />Oczywiście wiem że jest to rozwiązanie bardzo nieeleganckie, ale dla testów jak znalazł <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />Jeśli próbujesz robić komunikację opartą o komendy to najlepiej się do tego celu nadaje FSM (automat skończony). Jeśli o to właśnie chodzi to mogę Ci również takie rozwiązanie przedstawić <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=1183">atmel</a> — 30 gru 2014, o 00:26</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[driver0207]]></name></author>
<updated>2014-12-30T00:03:09+01:00</updated>
<published>2014-12-30T00:03:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9905&amp;p=111198#p111198</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9905&amp;p=111198#p111198"/>
<title type="html"><![CDATA[Re: Porównywanie zmiennych tekstowych]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9905&amp;p=111198#p111198"><![CDATA[
Zgadza się . Tylko mógł byś mi powiedzieć jeśli możesz jakim cudem po resecie procesora dalej w buforze siedzi mi te &quot;OK&quot;?? Używam bibliotek Mirka z zielonej książki i mnie to dziwi bo gdy wyświetlam sobie na wyświetlaczu zawartość tego bufora po resecie  to tam nic nie ma a mimo to ta funkcja wychodzi mi z pętli while . Natomiast gdy przed wejściem w tą funkcję naklepie w terminalu coś innego to zachowuje się tak jak powinna czyli czeka na &quot;OK&quot;<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 1 minucie ]</span></strong><br /><br />Dalej dzieje się tak samo Nic to nie pomogło. Będę szukał problemu w funkcji Mirka albo spróbuje zapisać coś do bufora przed sprawdzeniem warunku.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2199">driver0207</a> — 30 gru 2014, o 00:03</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[atmel]]></name></author>
<updated>2014-12-29T23:54:55+01:00</updated>
<published>2014-12-29T23:54:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9905&amp;p=111196#p111196</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9905&amp;p=111196#p111196"/>
<title type="html"><![CDATA[Re: Porównywanie zmiennych tekstowych]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9905&amp;p=111196#p111196"><![CDATA[
Można uprościć tę funkcję do takiej postaci:<br /><br />[syntax=c]void ok(void)<br />{<br />char bufor&#91;50&#93;;<br />while(strcmp(uart_get_str(bufor), &quot;OK&quot;));<br />}[/syntax]<br />Ponieważ nie wiem jakie jest ciało funkcji &quot;uart_get_str&quot; to można też użyć funkcji &quot;strstr&quot;, która szuka wystąpienia określonego łańcucha znakowego:<br /><br />[syntax=c]void ok(void)<br />{<br />char bufor&#91;50&#93;;<br />while(!strstr(uart_get_str(bufor), &quot;OK&quot;));<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1183">atmel</a> — 29 gru 2014, o 23:54</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[driver0207]]></name></author>
<updated>2014-12-29T23:40:29+01:00</updated>
<published>2014-12-29T23:40:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9905&amp;p=111192#p111192</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9905&amp;p=111192#p111192"/>
<title type="html"><![CDATA[Re: Porównywanie zmiennych tekstowych]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9905&amp;p=111192#p111192"><![CDATA[
Wiesz niby działa niby nie dziwnie się to zachowuje. <br />Podam całą funkcję.<br />[syntax=c]void ok (void){<br />char bufor&#91;50&#93;;<br /><br />uint8_t i ;<br /><br /><br />i=0;<br />while( i&lt;1){<br />if( !strcmp(uart_get_str(bufor), &quot;OK&quot;)){<br /><br />i=1;<br />}<br />}<br />}[/syntax]<br /><br /><br /><br />i teraz tak gdy wywołam tą funkcję to ma czekać w niej puki z bufora odbiorczego nie pobierze &quot;OK&quot;<br />i gdy pierwszy raz zaprogramuje to tak się dzieje lecz po resecie procesora odrazu warunek jest spełniany i wychodzi mi z funkcji while . Potem muszę zmienić ten warunek ok na inny.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2199">driver0207</a> — 29 gru 2014, o 23:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[atmel]]></name></author>
<updated>2014-12-29T01:07:51+01:00</updated>
<published>2014-12-29T01:07:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9905&amp;p=110986#p110986</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9905&amp;p=110986#p110986"/>
<title type="html"><![CDATA[Re: Porównywanie zmiennych tekstowych]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9905&amp;p=110986#p110986"><![CDATA[
Próbujesz przypisać adres wskaźnika łańcucha tekstowego &quot;ok&quot; do wartości zwracanej przez funkcję (zapewne chodziło o porównanie ==). Porównanie wskaźników nie da w efekcie oczekiwanego rezultatu, bo trzeba porównać zawartości kryjące się za tymi wskazaniami i do tego można użyć np. funkcji &quot;strcmp/strncmp&quot;.<br />Nie wiem co zwraca funkcja &quot;uart_get_str&quot;, ale jeśli jest to wskaźnik na &quot;bufor&quot; to można zrealizować to w ten sposób:<br /><br />[syntax=c]if(!strcmp(uart_get_str(bufor), &quot;ok&quot;)){<br />   // rób coś tam<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1183">atmel</a> — 29 gru 2014, o 01:07</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[driver0207]]></name></author>
<updated>2014-12-29T00:46:06+01:00</updated>
<published>2014-12-29T00:46:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9905&amp;p=110984#p110984</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9905&amp;p=110984#p110984"/>
<title type="html"><![CDATA[Porównywanie zmiennych tekstowych]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9905&amp;p=110984#p110984"><![CDATA[
Witam piszę funkcję która sprawdza czy odebrany string Przez uart jest równy &quot;OK&quot; <br />myślałem o czymś takim<br /><br />[syntax=c]if(uart_get_str(bufor)=&quot;ok&quot;){<br /><br />rób coś tam<br />}[/syntax]<br /><br /><br /> ale kompilator wywala błąd.<br /><br />Jak by można było to rozwiązać?<br /><br />Jestem początkującym w C i proszę o wyrozumiałość:)<br /><br /><br />Zgóry dziękuję za poradę.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2199">driver0207</a> — 29 gru 2014, o 00:46</p><hr />
]]></content>
</entry>
</feed>