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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2017-12-24T11:48:12+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=58&amp;t=19848&amp;mode</id>
<entry>
<author><name><![CDATA[andrews]]></name></author>
<updated>2017-12-24T11:48:12+01:00</updated>
<published>2017-12-24T11:48:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19848&amp;p=201023#p201023</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19848&amp;p=201023#p201023"/>
<title type="html"><![CDATA[Re: UART na atmega 328p-problem z kodem.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19848&amp;p=201023#p201023"><![CDATA[
No i jeszcze należałoby zmienić kolejność funkcji <strong><em>USART_Init()</em></strong> i <strong><em>zero()</em></strong>:[syntax=c]void USART_Init( unsigned int ubrr)<br />{<br />        /*Set baud rate */<br />        UBRR0H |= (unsigned char)(ubrr&gt;&gt;8);<br />        UBRR0L |= (unsigned char)ubrr;<br />        /*Enable receiver and transmitter */<br />        UCSR0B |= (1&lt;&lt;RXEN0)|(1&lt;&lt;TXEN0);<br />        /* Set frame format: 8data, 2stop bit */<br />        UCSR0C |= (1&lt;&lt;USBS0)|(1&lt;&lt;UCSZ00);<br />}<br /><br />void zero( void )<br />{<br />        USART_Init(MYUBRR);<br />}[/syntax]<br />lub alternatywnie dać deklarację funkcji <strong><em>USART_Init()</em></strong> przed funkcją <strong><em>zero()</em></strong>:<br /><br />[syntax=c]void USART_Init( unsigned int ubrr);<br /><br />void zero( void )<br />{<br />        USART_Init(MYUBRR);<br />}<br /><br />void USART_Init( unsigned int ubrr)<br />{<br />        /*Set baud rate */<br />        UBRR0H |= (unsigned char)(ubrr&gt;&gt;8);<br />        UBRR0L |= (unsigned char)ubrr;<br />        /*Enable receiver and transmitter */<br />        UCSR0B |= (1&lt;&lt;RXEN0)|(1&lt;&lt;TXEN0);<br />        /* Set frame format: 8data, 2stop bit */<br />        UCSR0C |= (1&lt;&lt;USBS0)|(1&lt;&lt;UCSZ00);<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14165">andrews</a> — 24 gru 2017, o 11:48</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[DarkMajster]]></name></author>
<updated>2017-12-24T02:00:29+01:00</updated>
<published>2017-12-24T02:00:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19848&amp;p=201008#p201008</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19848&amp;p=201008#p201008"/>
<title type="html"><![CDATA[Re: UART na atmega 328p-problem z kodem.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19848&amp;p=201008#p201008"><![CDATA[
[syntax=c]#include &lt;stdio.h&gt;<br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/eeprom.h&gt;<br />#include &lt;util/delay.h&gt;[/syntax]<br />daj nad wszystkim<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17494">DarkMajster</a> — 24 gru 2017, o 02:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[bartoszp1992]]></name></author>
<updated>2017-12-23T23:58:06+01:00</updated>
<published>2017-12-23T23:18:10+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19848&amp;p=201003#p201003</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19848&amp;p=201003#p201003"/>
<title type="html"><![CDATA[UART na atmega 328p-problem z kodem.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19848&amp;p=201003#p201003"><![CDATA[
Cześć! Ponieważ pod moim poprzednim postem nie było odpowiedzi, a trochę rzeczy już ustaliłem, postanowiłem stworzyć oddzielny temat. Tutaj już mój system operacyjny nie powinien mieć znaczenia.<br /><br />UC jakiego używam to atmega 328p.<br /><br />Co chce osiągnąć?<br />przesyłanie niewielkich danych z telefonu do mikrokontrolera w celu zdalnego sterowania wielokanalowego jakimś urządzeniem.<br /><br />Co już mam?<br />sprawny hc-05<br />działający dwukierunkowy  konwerter poziomów logicznych (3.3-5v)<br />Programator usbASP I eclipse z wtyczka<br />Bluetooth terminal i roboremo na smartfonie<br /><br />Moduł hc-05 bez problemu paruje się i łączy z telefonem. Po zawarciu że sobą pinów rxd I txd odsyła wysłane dane do telefonu. W terminalu jako tekst, jak i w roboremo po ustawieniu dwóch suwakow z takim samym id - przesuwając jeden, przesuwa się też drugi.<br /><br />W czym jest problem?<br />inicjalizacja w mikrokontrolerze. Powiedzmy, że chciałbym osiągnąć to samo co przy zawarciu rxd z txd, tylko przez UC<br />. Dalej już sobie poradzę. Niech mikrokontroler odbierze dane, zapisze w zmiennej i odeśle z powrotem.<br /><br />O ile z ADC poradziłem sobie używając noty, o tyle z UART mam problem. Jakoś ciężko mi to idzie. Co ciekawe, w nocie są gotowe kody do inicjalizacji, wysłania i odbioru danych. Tylko po zrobieniu kopiuj-wklej kod nie chce się kompilowac.<br /><br />Jak się domyślam, dla niektórych na tym forum będzie to kwestia pięciu minut. Chciałbym jakiegoś gotowca, żeby mieć bazę. Tylko inicjalizacja, wysłanie i odebranie danych. Wolałbym też póki co uniknąć przerwan, jeżeli taka możliwość istnieje.<br /><br />Nie wiem też, czy mogę np wykorzystać poradniki dotyczące rs232 albo UART przez WiFi, czy jest jakaś różnica. Szkoda mi całego dnia oglądania poradników żeby sprawdzić, że rs 232 nie ma nic wspólnego z komunikacją przez hc-05.<br /><br />Kod który mam teraz(nie kompiluje się)<br /><br />[syntax=c]/*<br /> * main.c<br /> *<br /> *Bluetooth<br /> *<br /> */<br /><br />//Initialize USART<br /><br /><br />#define FOSC 1000000 // Clock Speed<br />#define BAUD 9600<br />#define MYUBRR FOSC/16/BAUD-1<br />void zero( void )<br />{<br />USART_Init(MYUBRR);<br />}<br />void USART_Init( unsigned int ubrr)<br />{<br />/*Set baud rate */<br />UBRR0H |= (unsigned char)(ubrr&gt;&gt;8);<br />UBRR0L |= (unsigned char)ubrr;<br />/*Enable receiver and transmitter */<br />UCSR0B |= (1&lt;&lt;RXEN0)|(1&lt;&lt;TXEN0);<br />/* Set frame format: 8data, 2stop bit */<br />UCSR0C |= (1&lt;&lt;USBS0)|(1&lt;&lt;UCSZ00);<br />}<br /><br /><br />//End of initializing USART<br /><br /><br /><br /><br /><br />#include &lt;stdio.h&gt;<br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/eeprom.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br /><br /><br />int main(void)<br />{<br />while(1)<br />{<br /><br />DDRB |= (1&lt;&lt;PB6) | (1&lt;&lt;PB7);<br />PORTB |= (1&lt;&lt;PB6);<br /><br />int data;<br />data = 23;<br /><br /><br />/* Wait for empty transmit buffer */<br />while ( !( UCSR0A &amp; (1&lt;&lt;UDRE0)) );<br />/* Put data into buffer, sends the data */<br />UDR0 = data;<br /><br />PORTB |= (1&lt;&lt;PB7);<br /><br />_delay_ms(200);<br /><br /><br />}//main  loop close<br />}[/syntax]<br /><br />Co zwraca kompilator:<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">23:56:28 **** Incremental Build of configuration Release for project testy ****<br />make all <br />Building file: ../.metadata/.plugins/org.eclipse.cdt.make.core/specs.c<br />Invoking: AVR Compiler<br />avr-gcc -I/home/bartosz/projekty/avr/libs -Wall -Os -fpack-struct -fshort-enums -ffunction-sections -fdata-sections -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega328p -DF_CPU=1000000UL -MMD -MP -MF&quot;.metadata/.plugins/org.eclipse.cdt.make.core/specs.d&quot; -MT&quot;.metadata/.plugins/org.eclipse.cdt.make.core/specs.o&quot; -c -o &quot;.metadata/.plugins/org.eclipse.cdt.make.core/specs.o&quot; &quot;../.metadata/.plugins/org.eclipse.cdt.make.core/specs.c&quot;<br />Finished building: ../.metadata/.plugins/org.eclipse.cdt.make.core/specs.c<br /> <br />Building file: ../main.c<br />Invoking: AVR Compiler<br />avr-gcc -I/home/bartosz/projekty/avr/libs -Wall -Os -fpack-struct -fshort-enums -ffunction-sections -fdata-sections -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega328p -DF_CPU=1000000UL -MMD -MP -MF&quot;main.d&quot; -MT&quot;main.o&quot; -c -o &quot;main.o&quot; &quot;../main.c&quot;<br />../main.c: In function 'zero':<br />../main.c:16:2: warning: implicit declaration of function 'USART_Init' &#91;-Wimplicit-function-declaration&#93;<br />  USART_Init(MYUBRR);<br />  ^~~~~~~~~~<br />../main.c: At top level:<br />../main.c:18:6: warning: conflicting types for 'USART_Init'<br /> void USART_Init( unsigned int ubrr)<br />      ^~~~~~~~~~<br />../main.c:16:2: note: previous implicit declaration of 'USART_Init' was here<br />  USART_Init(MYUBRR);<br />  ^~~~~~~~~~<br />../main.c: In function 'USART_Init':<br />../main.c:21:2: error: 'UBRR0H' undeclared (first use in this function)<br />  UBRR0H |= (unsigned char)(ubrr&gt;&gt;8);<br />  ^~~~~~<br />../main.c:21:2: note: each undeclared identifier is reported only once for each function it appears in<br />../main.c:22:2: error: 'UBRR0L' undeclared (first use in this function)<br />  UBRR0L |= (unsigned char)ubrr;<br />  ^~~~~~<br />../main.c:24:2: error: 'UCSR0B' undeclared (first use in this function)<br />  UCSR0B |= (1&lt;&lt;RXEN0)|(1&lt;&lt;TXEN0);<br />  ^~~~~~<br />../main.c:24:16: error: 'RXEN0' undeclared (first use in this function)<br />  UCSR0B |= (1&lt;&lt;RXEN0)|(1&lt;&lt;TXEN0);<br />                ^~~~~<br />../main.c:24:27: error: 'TXEN0' undeclared (first use in this function)<br />  UCSR0B |= (1&lt;&lt;RXEN0)|(1&lt;&lt;TXEN0);<br />                           ^~~~~<br />../main.c:26:2: error: 'UCSR0C' undeclared (first use in this function)<br />  UCSR0C |= (1&lt;&lt;USBS0)|(1&lt;&lt;UCSZ00);<br />  ^~~~~~<br />../main.c:26:16: error: 'USBS0' undeclared (first use in this function)<br />  UCSR0C |= (1&lt;&lt;USBS0)|(1&lt;&lt;UCSZ00);<br />                ^~~~~<br />../main.c:26:27: error: 'UCSZ00' undeclared (first use in this function)<br />  UCSR0C |= (1&lt;&lt;USBS0)|(1&lt;&lt;UCSZ00);<br />                           ^~~~~~<br />make: *** &#91;subdir.mk:20: main.o&#93; Błąd 1<br /><br />23:56:30 Build Finished (took 2s.199ms)<br /></div><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=16295">bartoszp1992</a> — 23 gru 2017, o 23:18</p><hr />
]]></content>
</entry>
</feed>