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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-02-22T23:53:43+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=6070&amp;mode</id>
<entry>
<author><name><![CDATA[Dawid90]]></name></author>
<updated>2014-02-22T23:53:43+01:00</updated>
<published>2014-02-22T23:53:43+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6070&amp;p=71643#p71643</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6070&amp;p=71643#p71643"/>
<title type="html"><![CDATA[Re: Problem z porównaniem łańcucha znaków odebranych przez U]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6070&amp;p=71643#p71643"><![CDATA[
Witam ponownie<br />Tak to był zamierzony efekt. Ale jak już było wspomniane, można było by to rozwiązać w ten sposób że znak końca był by przypisywany jednorazowo po pętli while. Wracając do tematu, problem rozwiązany. Aż mi wstyd się przyznawać co było nie tak. Problem tkwił w makrze do gaszenia diód, Zmiana jednej cyferki rozwiązała problem i wszystko teraz działa. Więc tego tematu w ogóle nie powinno być, przepraszam za zamieszanie i dziękuję za wszystkie odpowiedzi <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=203">Dawid90</a> — 22 lut 2014, o 23:53</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[charsz]]></name></author>
<updated>2014-02-21T07:32:08+01:00</updated>
<published>2014-02-21T07:32:08+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6070&amp;p=71295#p71295</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6070&amp;p=71295#p71295"/>
<title type="html"><![CDATA[Re: Problem z porównaniem łańcucha znaków odebranych przez U]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6070&amp;p=71295#p71295"><![CDATA[
<div class="quotetitle">nixie napisał(a):</div><div class="quotecontent"><br />Kod wykona się prawidłowo tylko po co wykonywać zbędną operację przy każdym obrocie pętli.<br /></div><br /><br />Chocby po to, zeby nie nadpisywac tablicy jak przyjdzie sam znak konca lini. <br />Oczywiscie pytanie pozostaje czy to zamierzony efekt czy pomylka. Na pewno nie wplywa to na problem ktory ma kolega.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=926">charsz</a> — 21 lut 2014, o 07:32</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[nixie]]></name></author>
<updated>2014-02-20T21:46:22+01:00</updated>
<published>2014-02-20T21:46:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6070&amp;p=71281#p71281</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6070&amp;p=71281#p71281"/>
<title type="html"><![CDATA[Re: Problem z porównaniem łańcucha znaków odebranych przez U]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6070&amp;p=71281#p71281"><![CDATA[
Kod wykona się prawidłowo tylko po co wykonywać zbędną operację przy każdym obrocie pętli.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=358">nixie</a> — 20 lut 2014, o 21:46</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[charsz]]></name></author>
<updated>2014-02-20T21:39:08+01:00</updated>
<published>2014-02-20T21:39:08+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6070&amp;p=71280#p71280</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6070&amp;p=71280#p71280"/>
<title type="html"><![CDATA[Re: Problem z porównaniem łańcucha znaków odebranych przez U]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6070&amp;p=71280#p71280"><![CDATA[
Zgadza sie. Nie wiem czy to planowe ale mi sie podoba to zagranie. Kazdy znak zostanie zapisany a w nastelnej komorce tabeli zapisane zostanie \0. Przy kolejnym obrocie petli znak zostanie wstawiony w miejsce \0 a kolejne miejsce ubrane w \0. Jak nastepny znak okaze sie byc znakiem konca linii to do tablicy nic nie zostanie wstawione a string bedzie mial zero na koncu <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=926">charsz</a> — 20 lut 2014, o 21:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[nixie]]></name></author>
<updated>2014-02-20T21:27:24+01:00</updated>
<published>2014-02-20T21:27:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6070&amp;p=71279#p71279</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6070&amp;p=71279#p71279"/>
<title type="html"><![CDATA[Re: Problem z porównaniem łańcucha znaków odebranych przez U]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6070&amp;p=71279#p71279"><![CDATA[
Tu mi się nie zgadza:<br /><br /><div class="quotetitle">Dawid90 napisał(a):</div><div class="quotecontent"><br /> <br />[syntax=c]while( (c=uart_getc()) != 0x0d)<br />{<br />          tablica&#91;i&#93; = c;<br />          i++;<br />          tablica&#91;i&#93;='\0';<br />}[/syntax]<br /></div><br /><br />To powinno być po wyjściu z pętli while:<br /><br />[syntax=c]tablica&#91;i&#93;='\0';[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=358">nixie</a> — 20 lut 2014, o 21:27</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[charsz]]></name></author>
<updated>2014-02-20T21:15:52+01:00</updated>
<published>2014-02-20T21:15:52+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6070&amp;p=71277#p71277</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6070&amp;p=71277#p71277"/>
<title type="html"><![CDATA[Re: Problem z porównaniem łańcucha znaków odebranych przez U]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6070&amp;p=71277#p71277"><![CDATA[
A moze cos z makrami do led masz nie tak? Skoro masz uarta to czemu zamiast LED_ON1; nie wstawisz np uart_puts(&quot;pierwszy strcmp zwrocil 0&quot;); mozliwosci debugowania takiego kodu majac uart jest wiele.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=926">charsz</a> — 20 lut 2014, o 21:15</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2014-02-20T20:57:00+01:00</updated>
<published>2014-02-20T20:57:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6070&amp;p=71275#p71275</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6070&amp;p=71275#p71275"/>
<title type="html"><![CDATA[Re: Problem z porównaniem łańcucha znaków odebranych przez U]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6070&amp;p=71275#p71275"><![CDATA[
Kod jest dobry.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 20 lut 2014, o 20:57</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Dawid90]]></name></author>
<updated>2014-02-20T00:42:57+01:00</updated>
<published>2014-02-20T00:42:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6070&amp;p=71182#p71182</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6070&amp;p=71182#p71182"/>
<title type="html"><![CDATA[Problem z porównaniem łańcucha znaków odebranych przez UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6070&amp;p=71182#p71182"><![CDATA[
Witam<br /><br />Chciałbym prosić o pomoc. Mam problem z odbiorem łańcucha znaków poprzez uart, a następnie porównanie ze wzorcem i wykonanie odpowiedniego rozkazu. Korzystam z pierwszej wersji niebieskiej książki (niestety zielonej nie mam) i wykorzystałem z niej kod do obsługi tego interfejsu. Wykombinowałem taki kod, który jest wykonywany po wykryciu że coś zostało odebrane:<br /><br />[syntax=c]if(flaga)<br />{<br />i=0;<br /><br />while( (c=uart_getc()) != 0x0d)<br />{<br />tablica&#91;i&#93; = c;<br />i++;<br />tablica&#91;i&#93;='\0';<br />}<br />flaga--;<br /><br />uart_puts(&quot;Ilosc elementow w tablicy: &quot;);<br />uart_putint(i, 10);<br />uart_puts(&quot;\r\n&quot;);<br /><br />uart_puts(&quot;tablica: &quot;);<br />uart_puts(tablica);<br />uart_puts(&quot;\r\n&quot;);<br /><br />uart_puts(&quot;wzorzec1: &quot;);<br />uart_puts(wzorzec1);<br />uart_puts(&quot;\r\n&quot;);<br /><br />uart_puts(&quot;wzorzec2 :&quot;);<br />uart_puts(wzorzec2);<br />uart_puts(&quot;\r\n&quot;);<br /><br />uart_puts(&quot;wzorzec3 :&quot;);<br />uart_puts(wzorzec3);<br />uart_puts(&quot;\r\n&quot;);<br /><br />if(strcmp(tablica, wzorzec1) == 0) LED_ON1;<br />if(strcmp(tablica, wzorzec2) == 0) LED_ON2;<br />if(strcmp(tablica, wzorzec3) == 0)<br />{<br />LED_OFF1;<br />LED_OFF2;<br />}<br /><br />}[/syntax]<br /><br />A w int main(void)<br />[syntax=c]char c;<br />char wzorzec1&#91;&#93;=&quot;on1&quot;;<br />char wzorzec2&#91;&#93;=&quot;on2&quot;;<br />char wzorzec3&#91;&#93;=&quot;off&quot;;<br /><br />uint8_t i;<br />char tablica&#91;15&#93;;[/syntax]<br /><br />I reszta do obsługi LED.<br />Efekty jakie uzyskuje:<br />Gdy wyślę on1, dioda się zapala, w terminalu dostaje:<br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">Ilosc elementow w tablicy: 3<br />tablica: on1<br />wzorzec1: on1<br />wzorzec2 :on2<br />wzorzec3 :off</div><br /><br />Gdy wyślę on2, nic się nie dzieje, w terminalu dostaje:<br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">Ilosc elementow w tablicy: 3<br />tablica: on2<br />wzorzec1: on1<br />wzorzec2 :on2<br />wzorzec3 :off</div><br /><br />Gdy wyślę off, również nic się nie dzieję, nadal jest zapalona dioda LED1. Terminal:<br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">Ilosc elementow w tablicy: 3<br />tablica: off<br />wzorzec1: on1<br />wzorzec2 :on2<br />wzorzec3 :off<br /></div><br /><br />Po resecie uC, wysyłam najpierw on2. I zapala się LED1 zamiast oczekiwanego LED2. Terminal:<br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">Ilosc elementow w tablicy: 3<br />tablica: on2<br />wzorzec1: on1<br />wzorzec2 :on2<br />wzorzec3 :off<br /></div><br /><br />Gdzieś coś źle robię i nie mogę doszukać się gdzie a kod jest bardzo prosty. Wg tego co wypluwa terminal, to powinno działać. Dodaję sccren z terminala:<br /><a href="http://forum.atnel.pl/_obrazki/o/203/b1102f68a86912475e11c47c5d99cbec.JPG"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/203/b1102f68a86912475e11c47c5d99cbec.JPG" alt="Obrazek" /></a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=203">Dawid90</a> — 20 lut 2014, o 00:42</p><hr />
]]></content>
</entry>
</feed>