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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2017-08-19T20:15:56+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=8&amp;t=18989&amp;mode</id>
<entry>
<author><name><![CDATA[mortan517]]></name></author>
<updated>2017-08-19T20:15:56+01:00</updated>
<published>2017-08-19T20:15:56+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18989&amp;p=193631#p193631</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18989&amp;p=193631#p193631"/>
<title type="html"><![CDATA[Re: Atmega328P UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18989&amp;p=193631#p193631"><![CDATA[
Już doszedłem do tego, co było problemem. Jak ustawiałem wartość OSCCAL, to wyszło mi, że transmisja działa dla wartości 65-75, jak się później okazało, działa też dla 125-140. Zmieniłem więc OSCCAL, na środkową z drugiego zakresu i problemy zniknęły.<br /><br />Jak wygląda sprawa z PWM w Atmega328? Ile można ustawić tam niezależnych kanałów (częstotliwość przerwania może być jednakowa, ważne żeby można było zmienić wypełnienie), i jakie one będą? Muszę mieć 4 PWMy, jaką maksymalną rozdzielczość dostanę?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17071">mortan517</a> — 19 sie 2017, o 20:15</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[micky]]></name></author>
<updated>2017-08-15T18:17:29+01:00</updated>
<published>2017-08-15T18:17:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18989&amp;p=193431#p193431</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18989&amp;p=193431#p193431"/>
<title type="html"><![CDATA[Re: Atmega328P UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18989&amp;p=193431#p193431"><![CDATA[
Na początek to wywal te F_CPU i porządnie ustaw freq we właściwościach projektu. <br /><br />Sent from my Mi-4c using Tapatalk<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1546">micky</a> — 15 sie 2017, o 18:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mortan517]]></name></author>
<updated>2017-08-15T14:54:15+01:00</updated>
<published>2017-08-15T14:54:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18989&amp;p=193420#p193420</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18989&amp;p=193420#p193420"/>
<title type="html"><![CDATA[Re: Atmega328P UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18989&amp;p=193420#p193420"><![CDATA[
Przestałem się sugerować kodem z Atmegi8, na którym to już działało <img src="https://forum.atnel.pl/images/smilies/icon_neutral.gif" alt=":|" title="Średnio zadowolony" /> zacząłem od najprostszego programu, który musi zadziałać, a mianowicie:<br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;avr/delay.h&gt;[/syntax]<br /><br /><strong><em><span style="color: #FF0000">#define F_CPU 1000000   &lt;---- TEGO NIGDY nie wstawiamy w kodzie - mirekk36 (a szczególnie na tym forum)</span></em></strong><br /><br />[syntax=c]void USART_init(uint16_t baud)<br />{<br />UCSR0B |= (1&lt;&lt;RXEN0)|(1&lt;&lt;TXEN0)|(1&lt;&lt;RXCIE0)|(1&lt;&lt;UDRIE0);<br />UCSR0C |= (1&lt;&lt;UCSZ01)|(1&lt;&lt;UCSZ00);<br /><br />UBRR0H = (uint8_t)(baud&gt;&gt;8);<br />UBRR0L = (uint8_t)baud;<br />}<br /><br /><br /><br />int main(void)<br />{<br />    sei();<br />OSCCAL=170;<br />USART_init(F_CPU/16/9600-1);<br /><br />    while (1) <br />    {<br />UDR0='c';<br />_delay_ms(100);<br />OSCCAL=OSCCAL+1;<br />_delay_ms(100);<br />    }<br />}[/syntax]<br /><br />zacząłem kombinować z OSCCAL, bo w Atmedze8, też miałem nie do końca dobrze ustawione fabrycznie.<br />No i co tu jest źle? Konfiguracja 9600, 8bitów, 1bit stopu, bez kontroli parzystości, bez kontroli przepływu.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17071">mortan517</a> — 15 sie 2017, o 14:54</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Daro69]]></name></author>
<updated>2017-08-14T09:08:38+01:00</updated>
<published>2017-08-14T09:08:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18989&amp;p=193385#p193385</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18989&amp;p=193385#p193385"/>
<title type="html"><![CDATA[Re: Atmega328P UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18989&amp;p=193385#p193385"><![CDATA[
[syntax=c]#include &lt;avr/interrupt.h&gt;[/syntax] ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11549">Daro69</a> — 14 sie 2017, o 09:08</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mortan517]]></name></author>
<updated>2017-08-14T06:30:21+01:00</updated>
<published>2017-08-14T06:30:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18989&amp;p=193382#p193382</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18989&amp;p=193382#p193382"/>
<title type="html"><![CDATA[Re: Atmega328P UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18989&amp;p=193382#p193382"><![CDATA[
Tak, to może zacznę od jakiegoś prostego kodu, który musi zadziałać?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17071">mortan517</a> — 14 sie 2017, o 06:30</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Daro69]]></name></author>
<updated>2017-08-13T23:55:59+01:00</updated>
<published>2017-08-13T23:55:59+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18989&amp;p=193381#p193381</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18989&amp;p=193381#p193381"/>
<title type="html"><![CDATA[Re: Atmega328P UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18989&amp;p=193381#p193381"><![CDATA[
Kurcze,<br />Jakoś nic nie zauważam, <img src="https://forum.atnel.pl/images/smilies/icon_e_confused.gif" alt=":?" title="Boi się" /> <br />czy masz w main'ie: USART_Init(__UBRR); oraz sei(); ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11549">Daro69</a> — 13 sie 2017, o 23:55</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Piotrek_P]]></name></author>
<updated>2017-08-13T19:46:05+01:00</updated>
<published>2017-08-13T19:46:05+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18989&amp;p=193378#p193378</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18989&amp;p=193378#p193378"/>
<title type="html"><![CDATA[Re: Atmega328P UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18989&amp;p=193378#p193378"><![CDATA[
Zrób to kolego raz a porządnie i bez takich kombinacji jak pokazałeś. W pliku uart.c(czy jak on się tam u Ciebie nazywa), w funkcjach podstawowych zrób coś takiego dla procków jakie posiadasz:<br />[syntax=c]#ifdef __AVR_ATmega328P__<br />//tutaj wstaw instrukcje dla ATMega328<br />//<br />#endif[/syntax]<br /><br />i tak samo dla innych mikrokontrolerów.<br />Będziesz miał uniwersalną bibliotekę, która będzie się kompilować dla procka jaki ustawisz w opcjach danego projektu.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=290">Piotrek_P</a> — 13 sie 2017, o 19:46</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mortan517]]></name></author>
<updated>2017-08-13T19:29:19+01:00</updated>
<published>2017-08-13T19:29:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18989&amp;p=193377#p193377</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18989&amp;p=193377#p193377"/>
<title type="html"><![CDATA[Re: Atmega328P UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18989&amp;p=193377#p193377"><![CDATA[
Mam dołączony taki plik jeszcze z wyrażeniami:<br />[syntax=c]#define    UCSRA    UCSR0A<br />#define    UCSRB    UCSR0B<br />#define    UCSRC    UCSR0C<br />#define    UBRRH    UBRR0H<br />#define    UBRRL    UBRR0L<br />#define    UDRE    UDRE0<br />#define    UDR    UDR0<br />#define    RXC    RXC0<br />#define    RXEN    RXEN0<br />#define    TXEN    TXEN0<br />#define    UCSZ1    UCSZ01<br />#define    UCSZ0    UCSZ00<br />#define    UDRIE    UDRIE0<br />#define    RXCIE    RXCIE0[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17071">mortan517</a> — 13 sie 2017, o 19:29</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Piotrek_P]]></name></author>
<updated>2017-08-13T19:26:38+01:00</updated>
<published>2017-08-13T19:26:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18989&amp;p=193376#p193376</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18989&amp;p=193376#p193376"/>
<title type="html"><![CDATA[Re: Atmega328P UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18989&amp;p=193376#p193376"><![CDATA[
W liniach 11 i 12 powinno być:<br />UBRR0H<br />UBRR0L<br /><br />W linii 29:<br />UCSR0B |= (1&lt;&lt;UDRIE0);<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=290">Piotrek_P</a> — 13 sie 2017, o 19:26</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mortan517]]></name></author>
<updated>2017-08-13T18:54:45+01:00</updated>
<published>2017-08-13T18:54:45+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18989&amp;p=193375#p193375</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18989&amp;p=193375#p193375"/>
<title type="html"><![CDATA[Atmega328P UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18989&amp;p=193375#p193375"><![CDATA[
Witam bardzo serdecznie, ostatnio bawiłem się trochę UARTem, na Atmedze8 działało, chciałem się przesiąść na Atmegę328P i niestety już nie działa, mimo wprowadzonych zmian. Ktoś pomoże?<br /><br />[syntax=c]#define UART_BAUD 9600                    // tu definiujemy interesującą nas prędkość<br />#define __UBRR F_CPU/16/UART_BAUD-1      // obliczamy UBRR dla U2X=0<br /><br />#define UART_RX_BUF_SIZE 32 // definiujemy bufor o rozmiarze 32 bajtów<br />#define UART_RX_BUF_MASK (UART_RX_BUF_SIZE - 1)    // definiujemy maskę dla naszego bufora<br />#define UART_TX_BUF_SIZE 16 // definiujemy bufor o rozmiarze 16 bajtów<br />#define UART_TX_BUF_MASK (UART_TX_BUF_SIZE - 1)    // definiujemy maskę dla naszego bufora<br /><br /><br />volatile char UART_TxBuf&#91;UART_TX_BUF_SIZE&#93;;<br /><br />volatile uint8_t UART_TxHead; // indeks oznaczający &amp;#8222;głowę węża&amp;#8221;<br />volatile uint8_t UART_TxTail; // indeks oznaczający &amp;#8222;ogon węża&amp;#8221;<br /><br />void USART_Init(uint16_t baud);<br />void uart_putc(char data);<br />void uart_puts(char *s);<br />void uart_putint(int value, int radix);[/syntax]<br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;stdlib.h&gt;<br />#include &quot;usart.h&quot;<br /><br /><br />void USART_Init(uint16_t baud)<br />{<br />UCSR0B |= (1&lt;&lt;RXEN0)|(1&lt;&lt;TXEN0)|(1&lt;&lt;RXCIE0)|(1&lt;&lt;UDRIE0); <br />UCSR0C |= (1&lt;&lt;UCSZ01)|(1&lt;&lt;UCSZ00);<br /><br />UBRRH = (uint8_t)(baud&gt;&gt;8);<br />UBRRL = (uint8_t)baud;<br />//UCSRB = ((1&lt;&lt;TXEN)|(1&lt;&lt;RXEN) | (1&lt;&lt;RXCIE));<br />//UCSR0B = (1 &lt;&lt; RXCIE0) | (1 &lt;&lt; RXEN0);<br />//UCSRC = (1&lt;&lt;URSEL)|(3&lt;&lt;UCSZ0);<br />//UCSRB |= (1&lt;&lt;RXEN)|(1&lt;&lt;TXEN)|(1&lt;&lt;RXCIE);<br />}<br /><br /><br />void uart_putc(char data)<br />{<br />uint8_t tmp_head;<br /><br />tmp_head  = (UART_TxHead + 1) &amp; UART_TX_BUF_MASK;<br />while (tmp_head == UART_TxTail){}    // pętla oczekuje jeżeli brak miejsca w buforze cyklicznym na kolejne znaki<br /><br />UART_TxBuf&#91;tmp_head&#93; = data;<br />UART_TxHead = tmp_head;<br />UCSRB |= (1&lt;&lt;UDRIE);<br />}<br /><br /><br />void uart_puts(char *s)        // wysyła łańcuch z pamięci RAM na UART<br />{<br />register char c;<br />while ((c = *s++)) uart_putc(c);    // dopóki nie napotkasz 0 wysyłaj znak<br />//uart_putc('\n');                    //znak konca lini<br />}<br /><br /><br />void uart_putint(int value, int radix)    // wysyła na port szeregowy tekst<br />{<br />char string&#91;17&#93;;            // bufor na wynik funkcji itoa<br />itoa(value, string, radix);        // konwersja value na ASCII<br />uart_puts(string);            // wyślij string na port szeregowy<br />}[/syntax]<br /><br />Dodałem sporo DEFINE, żeby rejestry z 328 łapał jako z 8.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17071">mortan517</a> — 13 sie 2017, o 18:54</p><hr />
]]></content>
</entry>
</feed>