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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-08-26T13:41:23+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=8285&amp;mode</id>
<entry>
<author><name><![CDATA[filip]]></name></author>
<updated>2014-08-26T13:41:13+01:00</updated>
<published>2014-08-26T13:41:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8285&amp;p=92958#p92958</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8285&amp;p=92958#p92958"/>
<title type="html"><![CDATA[Re: UART RS232 Odbior stringa mikrokontrolerem.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8285&amp;p=92958#p92958"><![CDATA[
fakt, mój błąd - pewnie, że się nie pokryją.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1548">filip</a> — 26 sie 2014, o 13:41</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mat_mate]]></name></author>
<updated>2014-08-26T13:41:23+01:00</updated>
<published>2014-08-26T13:37:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8285&amp;p=92957#p92957</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8285&amp;p=92957#p92957"/>
<title type="html"><![CDATA[Re: UART RS232 Odbior stringa mikrokontrolerem.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8285&amp;p=92957#p92957"><![CDATA[
Znak gwiazdki jest czyms wyjatkowym? Niestety dziala tylko za pierwszym razem. Potem podejzewam ze calosc jest wypelniona gwiazdkami i wiadomo ze stringi sie nie pokrywaja.<br /><br />Zrobilem taka modyfikacje i dziala:<br />[syntax=c]len = uart_getc();<br /><br />if(len == '\n')<br />{<br />i = 0;<br />if( strncmp(y, &quot;cmd&quot;, 3) == 0 ) PORTC ^= (1&lt;&lt;PC7);<br />//strcpy(y, &quot;&quot;);<br />memset(y, '*', 20);<br />} else if( len != '\0' )<br />{<br />y&#91;i&#93; = len;<br />i++;<br />}[/syntax]<br /><br />EDIT: <br /><br />[syntax=c]memset(y, '\0', 20);[/syntax]<br />Rozwiązało sprawę.<br /><br />Dzięki za wspólne dywagacje <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=2711">mat_mate</a> — 26 sie 2014, o 13:37</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[filip]]></name></author>
<updated>2014-08-26T13:32:20+01:00</updated>
<published>2014-08-26T13:32:20+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8285&amp;p=92956#p92956</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8285&amp;p=92956#p92956"/>
<title type="html"><![CDATA[Re: UART RS232 Odbior stringa mikrokontrolerem.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8285&amp;p=92956#p92956"><![CDATA[
użyj <br />[syntax=c]memset(y, '*', 20);[/syntax] <br />zamiast strcpy i powiedz czy działa.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1548">filip</a> — 26 sie 2014, o 13:32</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mat_mate]]></name></author>
<updated>2014-08-26T13:32:39+01:00</updated>
<published>2014-08-26T13:26:30+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8285&amp;p=92955#p92955</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8285&amp;p=92955#p92955"/>
<title type="html"><![CDATA[Re: UART RS232 Odbior stringa mikrokontrolerem.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8285&amp;p=92955#p92955"><![CDATA[
<div class="quotetitle">filip napisał(a):</div><div class="quotecontent"><br />a skąd wiesz, że zwraca 0?<br /></div><br />Zwraca 0 poniewaz zapala mi sie dioda. Korzystam z ATB 1.04 i dioda jest podlaczona katoda do procesora.<br /><br /><div class="quotetitle">filip napisał(a):</div><div class="quotecontent"><br />napisz tak:<br />[syntax=c]if(len == '\0') i = 0;<br />else<br />{<br />    y&#91;i&#93; = len;<br />    i++;<br />}[/syntax]<br /></div><br />To niestety nie dziala. Jak na moje to 0 == '\0' przez co w trakcie wykonywania petli glownej do tablicy y wpadaja zerowe wartosci.<br /><br />Kombinuje dalej, poniewaz przy przesylaniu stringa &quot;cm&quot; ten if sprawdzający zbieżność stringow również zwraca 0??\<br /><br />EDIT: &quot;cm&quot; wypełnia warunek, ale tylko gdy już raz prześlę &quot;cmd&quot;<br /><br />Skompaktowałem trochę całość:<br /><br />[syntax=c]...<br />// całość w pętli while; UART zainicjalizowany, przerwania też<br />len = uart_getc();<br /><br />if(len == '\n')<br />{<br />i = 0;<br />if( strcmp(y, &quot;cmd&quot;) == 0 ) PORTC ^= (1&lt;&lt;PC7);<br />strcpy(y, &quot;&quot;);<br />} else if( len != '\0' )<br />{<br />y&#91;i&#93; = len;<br />i++;<br />}<br />...[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2711">mat_mate</a> — 26 sie 2014, o 13:26</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[filip]]></name></author>
<updated>2014-08-26T13:06:25+01:00</updated>
<published>2014-08-26T13:06:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8285&amp;p=92951#p92951</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8285&amp;p=92951#p92951"/>
<title type="html"><![CDATA[Re: UART RS232 Odbior stringa mikrokontrolerem.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8285&amp;p=92951#p92951"><![CDATA[
a skąd wiesz, że zwraca 0? dioda miga tak? napisz tak:<br />[syntax=c]if(len == '\0') i = 0;<br />else<br />{<br />    y&#91;i&#93; = len;<br />    i++;<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1548">filip</a> — 26 sie 2014, o 13:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mat_mate]]></name></author>
<updated>2014-08-26T13:02:10+01:00</updated>
<published>2014-08-26T13:02:10+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8285&amp;p=92950#p92950</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8285&amp;p=92950#p92950"/>
<title type="html"><![CDATA[Re: UART RS232 Odbior stringa mikrokontrolerem.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8285&amp;p=92950#p92950"><![CDATA[
Inicjalizacja UARTa nie została w moim kodzie zawarta dla przejrzystosci, tak samo przerwania globalne. Prosze wybaczyc <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> Nastepnym razem bede od razu o tym informowal. Jestem młodym użytkownikiem tego forum <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />Problem rozwiązany. Dziękuje za linka. Zmieniłem następującą część kodu:<br /><br />[syntax=c]if(len == '\n') i = 0;<br />else if( len != '\0' ) // w tym miejscu<br />{<br />    y&#91;i&#93; = len;<br />    i++;<br />}[/syntax]<br /><br />Z powodu tego miejsca do tablicy &quot;y&quot; wpadały też znaki '\0' co było nieporządane.<br /><br />W dalszym ciągu nie rozumiem jednak zachowania funkcji strcmp która porównując tablice pełną znaków '\0' ye stringiem &quot;cmd&quot; zwraca 0?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2711">mat_mate</a> — 26 sie 2014, o 13:02</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[filip]]></name></author>
<updated>2014-08-26T12:39:22+01:00</updated>
<published>2014-08-26T12:39:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8285&amp;p=92947#p92947</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8285&amp;p=92947#p92947"/>
<title type="html"><![CDATA[Re: UART RS232 Odbior stringa mikrokontrolerem.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8285&amp;p=92947#p92947"><![CDATA[
zależy jak masz podłączoną diodę - pewnie anodą do procesora i dlatego jest zapalona w momencie startu programu. Poza tym instrukcja zmienia stan wyjściowy na przeciwny, więc raz będzie zapalona a raz zgaszona.<br />EDIT:<br />rozumiem, że wszystkie funkcje są od Mirka z książki? sprawdzałeś połączenia?<br />sprawdź ten temat: <!-- l --><a class="postlink-local" href="http://forum.atnel.pl/topic968.html" >topic968.html</a><!-- l --><br /><br />3. nie inicjalizujesz UARTa<br />4. nie zezwalasz na przerwania globalne<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1548">filip</a> — 26 sie 2014, o 12:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mat_mate]]></name></author>
<updated>2014-08-26T12:27:07+01:00</updated>
<published>2014-08-26T12:27:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8285&amp;p=92942#p92942</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8285&amp;p=92942#p92942"/>
<title type="html"><![CDATA[Re: UART RS232 Odbior stringa mikrokontrolerem.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8285&amp;p=92942#p92942"><![CDATA[
Aj.<br /><br />1. Przeoczylem, dzieki. Niestety nie rozwiazuje to problemu.<br />2. Sorki, petla jest, lecz przy kopiowaniu tutaj jej nie uwzglednilem.<br /><br />Juz aktualizuje i dalej prosze o pomoc.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2711">mat_mate</a> — 26 sie 2014, o 12:27</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[filip]]></name></author>
<updated>2014-08-26T11:54:30+01:00</updated>
<published>2014-08-26T11:54:30+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8285&amp;p=92937#p92937</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8285&amp;p=92937#p92937"/>
<title type="html"><![CDATA[Re: UART RS232 Odbior stringa mikrokontrolerem.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8285&amp;p=92937#p92937"><![CDATA[
1. nigdzie nie zwiększasz zmiennej i<br />2. nie masz żadnej pętli, więc program wykona się tylko raz <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=1548">filip</a> — 26 sie 2014, o 11:54</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mat_mate]]></name></author>
<updated>2014-08-26T12:30:27+01:00</updated>
<published>2014-08-26T11:24:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8285&amp;p=92932#p92932</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8285&amp;p=92932#p92932"/>
<title type="html"><![CDATA[UART RS232 Odbior stringa mikrokontrolerem.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8285&amp;p=92932#p92932"><![CDATA[
Witam.<br /><br />Prosze o nakierowanie. Jestem na etapie obslugi RS232 i korzystam z przerwan.<br /><br />W jaki sposob moge odebrac wyslany z PC (Visual C#) string, by przy porownaniu z innym konkretnym stringiem wywolac procedure?<br /><br />Moje podejscie bez oczekiwanego rezultatu:<br />[syntax=c]int i = 0;<br />char y&#91;20&#93;;<br />unsigned char len;<br /><br />int main(void)<br />{<br /><br />DDRC = (1&lt;&lt;PC7);<br />PORTC = (1&lt;&lt;PC7);<br /><br />while(1)<br />{<br />len = uart_getc();<br /><br />if(len == '\n') i = 0;<br />else<br />{<br />y&#91;i&#93; = len;<br />i++;<br />}<br /><br />if( strcmp(y, &quot;cmd&quot;) == 0 ) PORTC &amp;= ~(1&lt;&lt;PC7);<br /><br />if(len == '\n') strcpy(y, &quot;&quot;);<br />}<br />}[/syntax]<br /><br />EDIT:<br />dziwne zjawisko jest takie,  ze dioda podlaczona do PC7 zapala sie od poczatku programu. Czyli if z funkcja strcmp jest spelniony od samego poczatku?<br />Dziekuje.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2711">mat_mate</a> — 26 sie 2014, o 11:24</p><hr />
]]></content>
</entry>
</feed>