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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2016-09-12T07:22:06+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=16192&amp;mode</id>
<entry>
<author><name><![CDATA[andrews]]></name></author>
<updated>2016-09-12T07:22:06+01:00</updated>
<published>2016-09-12T07:22:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16192&amp;p=168618#p168618</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16192&amp;p=168618#p168618"/>
<title type="html"><![CDATA[Re: Przerwania USART i przypadkowe dane]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16192&amp;p=168618#p168618"><![CDATA[
Zacząłbym od dokładnego sprawdzenia połączeń. Objawy, które opisujesz mogą wskazywać na przerwę w obwodzie pomiędzy TXD komputera, a RXD mikrokontrolera (oczywiście poprzez konwerter napięć).<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14165">andrews</a> — 12 wrz 2016, o 07:22</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[micky]]></name></author>
<updated>2016-09-12T07:10:03+01:00</updated>
<published>2016-09-12T07:10:03+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16192&amp;p=168617#p168617</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16192&amp;p=168617#p168617"/>
<title type="html"><![CDATA[Re: Przerwania USART i przypadkowe dane]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16192&amp;p=168617#p168617"><![CDATA[
Częstotliwość cpu ustawiasz wyłącznie w opcjach projektu a nie w źródle. <br />Masz saleae, żeby się podłączyć i sprawdzić jaki dokladnie sygnal masz na wyjściu z procka? <br /><br />Sent from my Mi-4c<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1546">micky</a> — 12 wrz 2016, o 07:10</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[marek_morr]]></name></author>
<updated>2016-09-12T06:38:15+01:00</updated>
<published>2016-09-12T06:38:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16192&amp;p=168616#p168616</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16192&amp;p=168616#p168616"/>
<title type="html"><![CDATA[Re: Przerwania USART i przypadkowe dane]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16192&amp;p=168616#p168616"><![CDATA[
<div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />Zapamiętaj sobie o tym co napisałem wyżej na czerwono - ten dopisek<br /></div><br /><br />Wyrzuciłem tą deklarację do main.h, zadeklarowałem ją w pierwszej kolejności w pliku main.c, usart.c i hd44780.c jednak problem dalej występuje. Jak zrobiłem wysyłanie co 1 sekundę wartości zmiennej <strong>index</strong>, to nie wysyłając nic z komputera, wpada po 9 znaków, czyli mam:<br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />index: 1<br />index: 10<br />index: 19<br />index: 28<br /></div><br /><br />Gdy wyślę coś z komputera, to zaburzam tą stałą wartość i mam:<br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />index: 1<br />index: 10<br />index: 43<br />index: 51<br /></div><br /><br />Już nie rozumiem, co tutaj się dzieje...<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14884">marek_morr</a> — 12 wrz 2016, o 06:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2016-09-12T00:39:22+01:00</updated>
<published>2016-09-12T00:39:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16192&amp;p=168613#p168613</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16192&amp;p=168613#p168613"/>
<title type="html"><![CDATA[Re: Przerwania USART i przypadkowe dane]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16192&amp;p=168613#p168613"><![CDATA[
Zapamiętaj sobie o tym co napisałem wyżej na czerwono - ten dopisek<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 12 wrz 2016, o 00:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[marek_morr]]></name></author>
<updated>2016-09-11T23:42:06+01:00</updated>
<published>2016-09-11T23:42:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16192&amp;p=168612#p168612</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16192&amp;p=168612#p168612"/>
<title type="html"><![CDATA[Przerwania USART i przypadkowe dane]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16192&amp;p=168612#p168612"><![CDATA[
Witam, <br /><br />Skonfigurowałem USART żeby wysyłać dane, do komputera lecą prawidłowo. Chciałem teraz odbierać dane z komputera, jednak chciałbym to zrobić w przerwaniu aby tam w tablicy buforować dane i co jakiś czas obrabiać je w głównej pętli programu. Problem jest z tym, że po uruchomieniu przerwań uzyskuję jakieś śmieci - tak mi się wydaje, bo nie wysyłam żadnych danych a indeks w poniższym kodzie rośnie cały czas:<br /><br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br /><span style="color: #FF0000"><em>#define F_CPU 8000000UL &lt;----- zapamiętaj TEGO NIGDY nie robi się w kodzie programu ! [mirekk36 ] </em></span><br /></div><br />[syntax=c]#define USART_BAUDRATE 19200<br />#define BAUDRATE ((F_CPU)/(USART_BAUDRATE*16UL)-1)<br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &quot;hd44780.h&quot;<br />#include &quot;usart.h&quot;<br /><br />volatile char index = 0;<br />volatile unsigned char buffor&#91;255&#93;;<br /><br />ISR(USART_RXC_vect) <br />{<br />unsigned char tmp = UDR;<br />if (index == 254)<br />index = 0;<br />buffor&#91;index++&#93; = tmp;<br />}<br /><br />int main(void)<br />{<br />unsigned char temp_buffor&#91;32&#93;;<br />USART_Init();<br /><br />LCD_Initalize();<br />_delay_ms(100);<br />LCD_Clear();<br />_delay_ms(100);<br />LCD_Home();<br /><br />_delay_ms(50);<br />LCD_GoTo(0,1);<br />_delay_ms(50);<br />LCD_WriteText(&quot;test LCD&quot;);<br /><br />sei();<br />while(1)<br />{<br />_delay_ms(1000);<br />sprintf(temp_buffor, &quot;index: %d \r\n&quot;, index);<br />USART_SendArray(temp_buffor);<br />USART_SendText(&quot;ramka: &quot;);<br />USART_SendArray(buffor);<br />USART_SendText(&quot;\r\n&quot;);<br />}<br />}[/syntax]<br /><br />[syntax=c]#include &lt;stdio.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &quot;usart.h&quot;<br /><br />void USART_Init(void)<br />{<br />UBRRH = (BAUDRATE&gt;&gt;8);<br />UBRRL = BAUDRATE;<br />UCSRB |= (1 &lt;&lt; RXEN ) | (1 &lt;&lt; TXEN)  | (1 &lt;&lt; RXCIE);<br />UCSRC |= (1 &lt;&lt; URSEL ) | (1 &lt;&lt; UCSZ0 ) | (1 &lt;&lt; UCSZ1 );<br />}<br /><br />void USART_SendChar(unsigned char data)<br />{<br />while (!(UCSRA &amp; (1&lt;&lt;RXC)));<br />UDR = data;<br />}<br /><br />void USART_SendByte(uint8_t u8Data)<br />{<br />while((UCSRA &amp;(1&lt;&lt;UDRE)) == 0);<br />UDR = u8Data;<br />}<br /><br />void USART_SendArray(char StringPtr&#91;&#93;)<br />{<br />unsigned char i = 0;<br />while(StringPtr&#91;i&#93; != 0x00)<br />{<br />USART_SendByte(StringPtr&#91;i&#93;);<br />i++;<br />}<br />}<br /><br />void USART_SendText(char* StringPtr)<br />{<br />while(*StringPtr != 0x00)<br />{<br />USART_SendByte(*StringPtr);<br />StringPtr++;<br />}<br />}[/syntax]<br /><br />Częstotliwość (8MHz na wewnętrznym kwarcu) i prędkość jest raczej dobrze liczona bo jak się pomyliłem z konfiguracją to Terminal.exe miałem krzaki gdy wysyłałem coś z procka. <br /><br />A teraz nie wysyłając żadnych danych do proca, otrzymuje:<br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />index: 217 <br />ramka: ?&amp;#8249;&amp;#8226;áż°¸°C!&amp;#174;|?&amp;#8249;˝üřü&amp;#8230;˙ţđ-˝üřţ~ţđ-ýţü˙˙đ-˙˙ţ˙đ-˙˙řK˙ř˙ü¤?&amp;#8249;&amp;#8226;áż°˙<br />ňü&lt;'úúřŹűţ°Z˝üüţ~˙ţđ}ţü˙ůđ˙ţ˙đ-˙đ-˙˙ü˙üü¤ţ°˙Źűţ:ŇúĆřzűţđ˙ţţ~˙ţř˙ţůđ˙đ-˙đ˙ţüüä˙&amp;#8224;˙ź˙żű?˙˙řţţţ˙üţůđ˙ř˙řţüüöÇźq˙˙ř˙˙˙ţ˙üü˙ţţ˙~ţźü˙ţţ˙˙˙˙ç˙˙˙ěü?&amp;#8249;&amp;#8226;ăż°&amp;#187;LjŹűüka:`ż°¸đüű|?&amp;#8249;ţüţŁŘţř˙<br />index: 171 <br />ramka: ţţ~ţř˙˙˙˙ř˙ţ˙đmü÷ř˙üöż°˙đělü&lt;'˙˙ĆŹű˙ř˙üüţţ˙řţü˙űř˙đ-ř˙˙ü˙üţö˙űţ˙':?˙˙˙ţ˙˙˙˙ţůřřýđ˙ţţţö&amp;#8224;˙?˙ű?˙ü˙˙˙üţüřţüţ˙~źqü˙˙ţ˙ţţţţ˙ţ˙çţţ˙˙˙˙˙ěţż°&amp;#187;îł&amp;#182;ükáżđúĂţţ°Zţţ˙&gt;ţř˙<br />Ź?&amp;#8249;żüż°LSţŹűĽk+éű˙˙ř˙˙üţ˙đţüüö˙üřđělüľűĆźüüüţ˙ü˙˙űřřă˙˙ü˙ţ˙˙űţŰ˙y˙˙˙˙˙ţůüüřţţţ<br />index: 124 <br />ramka: ˙Ç°úűžţ˙˙ü˙ţüüţ˙˙ţźü˙˙ţ˙˙˙˙ţß˙˙˙˙ţ˙ż°ű˙żţ­żđ˙řüţ°˙˙˙&gt;ţř˙üţżüżđîż°ŹűĽ˙ďř˙˙řţ˙đţüţ˙ţđěüţ˙ç°ŁĆţţ˙ü˙˙üüŢ˙ü˙˙&amp;#8224;żţ˙˙˙˙˙˙ţţţţěü?&amp;#8249;&amp;#8226;ăż°.&amp;jŹűüka:`˙żyţţţüü˙˙Ć˙˙˙˙ţß˙˙żđ˙küţÜ°˙˙ż˙üüţ˙ţřďűţř˙˙ü˙řüţ˙˙řţţ˙çđľŢ˙ü˙˙ţţ˙ü˙˙Ç˙˙˙˙˙˙˙ţěü?ż°.&amp;#183;ł&amp;#182;ükáżđźżyţţ˙ţţ˙Ć˙˙˙˙˙ř<br />index: 60 <br />ramka: üţÜř˙üüţ˙üűţřţřüţü˙˙çđ˙˙ţ˙ţţţÇ˙˙˙ţěü˙řé&amp;#8250;łţüđźżů˙˙˙˙Ć˙˙ř<br />Ź?&amp;#8249;˝üż°jŹűüka:`8˙ţ˙üü˙ţŘţř˙üţ˙˙˙çř˙ţţţţţěü˙ü˙żţüđ˙˙˙˙˙ĆĆ<br />Ź?&amp;#8250;ţř&quot; ­ţţ&lt;'á˙ţ˙ţř˙üţ˙˙˙˙ţţţţţü˙żţţř˙˙˙Ćçüţmţřf°˙˙:˙˙˙üţúţţţ˙˙ţżţţřçţ˙ü÷ű˙zŹüţúţ˙˙ţżţţüßň˙ü÷˙Ćţúţ˙ţţü˙űţ˙Ćţ˙˙˙ü˙ű˙ç˙˙˙üď˙˙üţ˙Ć˙˙˙˙˙ř<br /></div><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14884">marek_morr</a> — 11 wrz 2016, o 23:42</p><hr />
]]></content>
</entry>
</feed>