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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2017-03-27T20:10:51+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=17991&amp;mode</id>
<entry>
<author><name><![CDATA[T1000]]></name></author>
<updated>2017-03-27T20:10:51+01:00</updated>
<published>2017-03-27T20:10:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17991&amp;p=185740#p185740</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17991&amp;p=185740#p185740"/>
<title type="html"><![CDATA[Re: USART powtarzanie wysyłania znaku z terminala]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17991&amp;p=185740#p185740"><![CDATA[
mam <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />powinno być<br />[syntax=c]int USART_GET(void)<br />{ while(!(UCSR2A &amp; (1&lt;&lt;RXC2)));<br />  return UDR2;<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=16173">T1000</a> — 27 mar 2017, o 20:10</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[T1000]]></name></author>
<updated>2017-03-26T19:50:37+01:00</updated>
<published>2017-03-26T19:50:37+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17991&amp;p=185687#p185687</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17991&amp;p=185687#p185687"/>
<title type="html"><![CDATA[USART powtarzanie wysyłania znaku z terminala]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17991&amp;p=185687#p185687"><![CDATA[
Witam, próbuje zrobić programik sterujący silnikiem poprzez bluetooth z PC mam BT222 podłączony do płytki mega 2560. Program wysyła i odbiera znaki z PC i odwrotnie. Problem jest taki, że właściwie działa tylko przy pierwszym naciśnięciu litery &quot;d&quot; pin ustawia się w stan wysoki i po 200ms zmienia stan (czyli właściwie). Po kolejnym naciśnięciu &quot;d&quot; pin zmienia stan w pętli co 200ms tak jakby putty wysyłał ciągle &quot;d&quot; do procesora i w terminalu widzę wtedy &quot;dddddddd... itd.&quot; z czym jest problem?<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &quot;UART.h&quot;<br />#include &lt;util/delay.h&gt;<br /><br />int main (void)<br />{ DDRB |= (1 &lt;&lt; PB7);<br />unsigned char data;<br />USART_ON();<br />while(1)<br />{<br />data = USART_GET();<br />if(data=='d')<br />{PORTB |= (1&lt;&lt; PB7);<br />USART_SENT(data);<br />_delay_ms(200);<br />}<br />PORTB&amp;=~(1&lt;&lt; PB7);<br />_delay_ms(200);<br />}<br />}[/syntax]<br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br /><br />#include &quot;UART.h&quot;<br /><br />void USART_ON(){<br />UBRR2L = 51; // baud 19200<br />UBRR2H = 0;<br />   UCSR2B |= (1 &lt;&lt; RXEN2)|(1 &lt;&lt; TXEN2); /* wlaczenie odbioru i nadawanie RXTX */<br />   UCSR2C |= (1&lt;&lt;UCSZ21)|(1&lt;&lt;UCSZ20); /* odbior danych 8 bitowych*/<br /><br /><br />}<br /><br />void USART_OFF(){<br /> UCSR2B &amp;=~(1 &lt;&lt; RXEN2)|~(1 &lt;&lt; TXEN2); /* wylaczenie odbioru i nadawanie RXTX */<br />}<br /><br />void USART_SENT(char znak)<br />{ while(!(UCSR2A &amp; (1&lt;&lt;UDRE2)));<br />  UDR2=znak;<br />}<br /><br />int USART_GET(void)<br />{ while(!(UCSR2A &amp; (1&lt;&lt;UDRE2)));<br />  return UDR2;<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=16173">T1000</a> — 26 mar 2017, o 19:50</p><hr />
]]></content>
</entry>
</feed>