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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2012-04-07T17:50:13+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=928&amp;mode</id>
<entry>
<author><name><![CDATA[Piotrek121]]></name></author>
<updated>2012-04-07T17:50:13+01:00</updated>
<published>2012-04-07T17:50:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=928&amp;p=5073#p5073</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=928&amp;p=5073#p5073"/>
<title type="html"><![CDATA[Re: Deklaracja USART w atmedze 128]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=928&amp;p=5073#p5073"><![CDATA[
O w morde.... tyle czasu spędzonego na takim czymś... zupełnie to wykluczyłem a jednak... Dziękuje bardzo za pomoc, działa wszystko jak powinno <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />pozdrawiam! i wesołych świąt!<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=270">Piotrek121</a> — 7 kwi 2012, o 17:50</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-04-07T17:40:51+01:00</updated>
<published>2012-04-07T17:40:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=928&amp;p=5071#p5071</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=928&amp;p=5071#p5071"/>
<title type="html"><![CDATA[Re: Deklaracja USART w atmedze 128]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=928&amp;p=5071#p5071"><![CDATA[
po co ci to? : #define FOSC 11059200<br /><br />a nad tym zastanowiłeś się?: UCSR1C = (3&lt;&lt;UCSZ01);<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 7 kwi 2012, o 17:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Piotrek121]]></name></author>
<updated>2012-04-07T16:31:14+01:00</updated>
<published>2012-04-07T16:31:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=928&amp;p=5064#p5064</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=928&amp;p=5064#p5064"/>
<title type="html"><![CDATA[Re: Deklaracja USART w atmedze 128]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=928&amp;p=5064#p5064"><![CDATA[
A gdzie konkretnie źle zainicjalizowany jest uart? moja inicjalizacja wygląda tak:<br /><br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />[syntax=c]<br /><br />#define FOSC 11059200<br />#define BAUD 115200<br />#define MYUBRR (((F_CPU/(BAUD*16UL)))-1)<br /><br />void USART_Init( unsigned int ubrr )<br />{<br /><br />/* Set baud rate */<br />UBRR1H = (uint8_t)(ubrr&gt;&gt;8);<br />UBRR1L = (uint8_t)ubrr;<br />/* Enable receiver and transmitter */<br />UCSR1B = (1&lt;&lt;RXEN1)|(1&lt;&lt;RXC1);<br />/* Set frame format: 8data, 1stop bit */<br />UCSR1C = (3&lt;&lt;UCSZ01);<br />}<br />.<br />.<br />.<br />.<br />int main (void)<br />{<br />.<br />.<br />sei();<br />USART_Init(MYUBRR);<br />.<br />.<br />}<br />[/syntax]<br /></div><br /><br /><br />Sprawdziłem odbierane dane, testowałem każdy odebrany bit i niestety zawsze ostatni był jako 0... gdy ręcznie w procesorze ustawie tablice ostatni bajt ma wartość 1 czyli zaświeca się dioda, tak więc problem nie leży po stronie wyświetlania, aby mieć już spokój sprawdziłem innym programem do wysyłania danych z rs i nadal to samo;/<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=270">Piotrek121</a> — 7 kwi 2012, o 16:31</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-04-07T15:34:51+01:00</updated>
<published>2012-04-07T15:34:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=928&amp;p=5042#p5042</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=928&amp;p=5042#p5042"/>
<title type="html"><![CDATA[Re: Deklaracja USART w atmedze 128]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=928&amp;p=5042#p5042"><![CDATA[
Ok ale posłuchaj ja rozumiem, że musisz zrobić przesyłanie tej tablicy. Rozumiem i to bardzo dobrze że jesteś początkujący i że na pamięć nie da rady wszystkiego - znam to z własnego doświadczenia.<br /><br />tylko że najważniejsze jest to - że bez prawidłowej inicjalizacji RS232 może zapomnieć o prawidłowym dalszym działaniu obojętnie jakiego programu....<br /><br />Weź że sobie zahaszuj na początku ten swój kod w pętli głównej i wysyłaj że jakieś znaki do terminala na PC aby sprawdzić czy dobrze przylatują- tak samo w drugą stronę - podłącz może sobie jakiś LCD 2x16 i obserwuj co przylatuje do procka z terminala. I dopiero jak to ci wyjdzie to wtedy walcz dalej z przesyłaniem tej tablicy....<br /><br />Bo tak robisz sobie wszystko pod górkę - jak chcesz żeby ci działała ta ramka jak masz źle zainicjalizowany UART ???<br /><br />A przecież napisałem wyżej jak łatwo można to sprawdzić czy masz go dobrze zainicjalizowanego - po co masz terminal na windows ?<br /><br />Więc zrób to i daj znać czy działa ci to najpierw z terminalem OK ?<br /><br />Ja się nie irytuję - po prostu czasem mi się robi nieswojo jak widzę, że ktoś pomija tyle podstaw z książki a bierze się za większy projekt....<br /><br />Ja tam wolałbym najpierw potrenować te podstawy do bólu żeby dobrze mi wszystko szło - napisać sobie porządną funkcję UART_INIT() a potem móc zawsze szybko przetestować z terminalem czy jest OK - bo tak to całkiem w ciemno wszystko robisz i dziwisz się że nie działa a na dodatek szukasz później problemu w ogóle nie w tym miejscu gdzie on leży.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 7 kwi 2012, o 15:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Piotrek121]]></name></author>
<updated>2012-04-07T15:23:46+01:00</updated>
<published>2012-04-07T15:23:46+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=928&amp;p=5039#p5039</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=928&amp;p=5039#p5039"/>
<title type="html"><![CDATA[Re: Deklaracja USART w atmedze 128]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=928&amp;p=5039#p5039"><![CDATA[
Napisze trochę inaczej... pisze tak jak w książce jednak mam cały czas ten sam problem... a mianowicie nie odbiera mi ostatniego bajtu, i wnioskuje, ze czegoś brakuje w moim kodzie, lub coś źle robię, dlatego tez sięgam do internetu. Owszem mam książkę, używam eclipse co do przykładów używam części kodu z nich. Rozumiem tą irytacje i sam już mam powoli dość tego... no ale zależy mi na tej tablicy tak więc niestety, powoli bo powoli ale próbuje coś ogarnąć, co prawda z dużymi błędami, no ale cóż... jestem początkujący pod względem pisania w C i wszystkiego nie jestem w stanie się nauczyć na pamięć... Co do tego przesunięcia bitowego to po prostu źle zrozumiałem całe działanie tego, jednak po ponownym przeczytaniu już rozumiem.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=270">Piotrek121</a> — 7 kwi 2012, o 15:23</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-04-07T15:13:31+01:00</updated>
<published>2012-04-07T15:13:31+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=928&amp;p=5038#p5038</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=928&amp;p=5038#p5038"/>
<title type="html"><![CDATA[Re: Deklaracja USART w atmedze 128]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=928&amp;p=5038#p5038"><![CDATA[
hej hej zaraz zaraz - ale czy ty zaglądałeś w ogóle do kodów na DVD ???? testowałeś tam kody dla RS232 ??? widziałeś jak tam jest rozwiązana inicjalizacja RS232 ???? bo na prawdę zaczynamy grać jak w &quot;ciu-ciu-babkę&quot; <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><br /><br />żadne #define ubrr<br /><br />Masz tam w przykładach takie coś:<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">#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</div><br /><br />po choinkę ty w swoim kodzie wyżej piszesz takie dziwne rzeczy w tym ten cały FOSC albo gdzieś tam dalej F_CPU .... nawet nie wolno definiować F_CPU w kodzie<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">#define FOSC 11059200// Clock Speed<br />#define BAUD 115200<br />#define MYUBRR FOSC/16/BAUD-1</div><br /><br />W mojej książce nie znalazłbyś takich kuriozalnych przykładów - wręcz piszę o tym że niektórzy robią takie dziwne rzeczy i nie należy tak robić - tylko tak jak to opisuję dalej w książce a ty co?<br /><br />na prawdę mnie to martwi - bo kurczę tyle w książce i w kodach poświęciłem czasu żeby opisać te podstawy i to bardzo dobrze, ty piszesz że masz niby książkę ale kody w tym zakresie piszesz jakieś z kosmosu .... więc ja już nie wiem co jest nie tak?<br /><br />A wybacz mi ale to jest za duża strata czasu żebym teraz na forum pisał to samo co w książce . Ja mogę coś wyjaśnić jak są wątpliwości itd .... ale to mi wygląda na to jakbyś w ogóle nie zaglądał do książki bo pytasz od początku świata o wszystko i o podstawy - łącznie z tymi przesunięciami bitowymi albo z tym jak definiować sobie jakąś stałą np _UBRR bo może być MYUBRR albo jeszcze inna ....<br /><br />coś tu jest nie tak - przykro mi, i zrozum mnie, że nie po to tyle się rozpisywałem w książce żeby teraz przepisywać na nowo to wszystko na forum w jednej odpowiedzi do ciebie, może za chwilę to samo w odpowiedzi do innej osoby<br /><br />no tak być nie może<br /><br />tak się składa - że WSZYSTKIE ODPOWIEDZI na te tutaj podstawowe pytania o inicjalizację RS232 masz na 100000% w książce<br /><br />a także na pewno masz w książce o co chodzi z tym przesuwaniem bitowym liczb <br /><br />..... przyznaj się - masz tą książkę? czy nie masz ? Używasz Eclipse i przykładów z DVD czy nie ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 7 kwi 2012, o 15:13</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Piotrek121]]></name></author>
<updated>2012-04-07T14:20:40+01:00</updated>
<published>2012-04-07T14:20:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=928&amp;p=5036#p5036</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=928&amp;p=5036#p5036"/>
<title type="html"><![CDATA[Re: Deklaracja USART w atmedze 128]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=928&amp;p=5036#p5036"><![CDATA[
Teraz już tak <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /> prawdę mówiąc przed tym postem to zauważyłem... to w takim razie jeżeli już wiem, ze wartość ubrr będzie miała wartość 5 to gdzie mam ją wpisać? mam zrobić coś tego typu? #define ubrr 5? (biorąc deklaracje z noty, która wcześniej skopiowałem)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=270">Piotrek121</a> — 7 kwi 2012, o 14:20</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-04-07T14:04:07+01:00</updated>
<published>2012-04-07T14:04:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=928&amp;p=5034#p5034</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=928&amp;p=5034#p5034"/>
<title type="html"><![CDATA[Re: Deklaracja USART w atmedze 128]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=928&amp;p=5034#p5034"><![CDATA[
Mnie chodzi o to że w nocie masz: <br /><br />(ubrr&gt;&gt;8);<br /><br />rozumiesz ? przecież wartość __UBRR którą masz w kodzie to 16 bitów z czego jeden od lewej to starszy bajt i trzeba go przecież przesunąć w lewą stronę o 8 bitów żeby wpadł w miejsce młodszego bajtu dokładnie i wtedy przypisujesz go tak jak miałeś do UBRR1H a młodszy bajt słowa __UBRR przypisujesz bez żadnego przesunięcia robiąc co najwyżej rzutowanie typu na uint8_t<br /><br />czy to teraz dla ciebie jest jasne ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 7 kwi 2012, o 14:04</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Piotrek121]]></name></author>
<updated>2012-04-07T13:26:56+01:00</updated>
<published>2012-04-07T13:26:56+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=928&amp;p=5032#p5032</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=928&amp;p=5032#p5032"/>
<title type="html"><![CDATA[Re: Deklaracja USART w atmedze 128]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=928&amp;p=5032#p5032"><![CDATA[
Juz widze mój błąd... źle zrozumiałem jedno pojęcie... to w takim razie gdzie mam przypisać wartość UBRR?<br /><br />To deklaracja z noty katalogowej<br /><br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />[syntax=c]<br />#define FOSC 1843200// Clock Speed<br />#define BAUD 9600<br />#define MYUBRR FOSC/16/BAUD-1<br />void main( void )<br />{<br />...<br />USART_Init ( MYUBRR );<br />...<br />}<br />void USART_Init( unsigned int ubrr )<br />{<br />/* Set baud rate */<br />UBRRH = (unsigned char)(ubrr&gt;&gt;8);<br />UBRRL = (unsigned char)ubrr;<br />/* Enable receiver and transmitter */<br />UCSRB = (1&lt;&lt;RXEN)|(1&lt;&lt;TXEN);<br />/* Set frame format: 8data, 2stop bit */<br />UCSRC = (1&lt;&lt;USBS)|(3&lt;&lt;UCSZ0);<br />}<br />[/syntax]<br /></div><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=270">Piotrek121</a> — 7 kwi 2012, o 13:26</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-04-07T11:44:28+01:00</updated>
<published>2012-04-07T11:44:28+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=928&amp;p=5025#p5025</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=928&amp;p=5025#p5025"/>
<title type="html"><![CDATA[Re: Deklaracja USART w atmedze 128]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=928&amp;p=5025#p5025"><![CDATA[
<div class="quotetitle">Piotrek121 napisał(a):</div><div class="quotecontent"><br />mam napisany programik, który jak na razie wysyła dane po naciśnięciu przycisku.. wysyła równe 24bajty o wczesniej ustalonej zawartości i jest on napisany w 100% dobrze.<br /></div><br /><br />Ok załóżmy na razie że dobrze.<br /><br /><div class="quotetitle">Piotrek121 napisał(a):</div><div class="quotecontent"><br />Napisałem kod, który jest w miarę przejrzysty, jednak nadal nie rozumiem problemu linijki UBRR1H = (uint8_t)(baud&gt;&gt;5); liczę na jakaś podpowiedź...<br /></div><br /><br />O nie, ja już zadawałem ci pytanie czy czytałeś rozdział o przesunięciach bitowych i mi nie odpowiedziałeś. Pytałem czy zaglądałeś do noty PDF do rozdziału o inicjalizacji UART i kodu w C, który tam jest pokazany. A nawet jeśli czegoś tam nie zrozumiałeś to można było o to dopytać.... Dlatego ja odpowiem w postaci kolejnego pytania:<br /><br />A dlaczego ty chcesz to przesuwać o 5 bitów ???? (przedtem próbowałeś przesuwać o 16 bitów) <br /><br />Wytłumacz mi to szczegółowo - co mają na celu te dwie linijki kodu:<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">        UBRR1H = (uint8_t)(baud&gt;&gt;5);<br />        UBRR1L = (uint8_t)baud;</div><br /><br />to znaczy jak ty to rozumiesz ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 7 kwi 2012, o 11:44</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Piotrek121]]></name></author>
<updated>2012-04-07T00:13:07+01:00</updated>
<published>2012-04-07T00:13:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=928&amp;p=5019#p5019</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=928&amp;p=5019#p5019"/>
<title type="html"><![CDATA[Re: Deklaracja USART w atmedze 128]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=928&amp;p=5019#p5019"><![CDATA[
mam napisany programik, który jak na razie wysyła dane po naciśnięciu przycisku.. wysyła równe 24bajty o wczesniej ustalonej zawartości i jest on napisany w 100% dobrze.<br /><br /><br /><br />Napisałem kod, który jest w miarę przejrzysty, jednak nadal nie rozumiem problemu linijki UBRR1H = (uint8_t)(baud&gt;&gt;5); liczę na jakaś podpowiedź...<br /><br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />[syntax=c]<br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/delay.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br /><br />// F_CPU 11059200<br />#define UART_BAUD 115200<br />#define __UBRR (F_CPU/16/UART_BAUD-1)<br /><br /><br /><br /><br />void deklaracja_USART( uint32_t baud)<br />{<br /><br />UBRR1H = (uint8_t)(baud&gt;&gt;5);<br />UBRR1L = (uint8_t)baud;<br />UCSR1B = (1&lt;&lt;RXEN1)|(1&lt;&lt;RXC1);<br />UCSR1C = (3&lt;&lt;UCSZ01);<br />}<br />uint8_t poziom = 1;<br />uint8_t licznik = 0;<br />uint8_t bajty = 24;<br />volatile uint8_t tablica[24];<br /><br /><br />ISR( USART1_RX_vect )<br />{<br /><br />if(licznik == bajty) licznik = 0;<br />tablica[licznik] = UDR1;<br />licznik +=1;<br />}<br /><br />void czysc()<br />{<br />PORTC &amp;= ~(1&lt;&lt;PC6);<br />PORTA &amp;= ~(1&lt;&lt;PA5);<br />PORTF &amp;= ~(1&lt;&lt;PF3);<br />PORTA &amp;= ~(1&lt;&lt;PA7);<br />PORTA &amp;= ~(1&lt;&lt;PA2);<br />PORTF &amp;= ~(1&lt;&lt;PF4);<br />PORTA &amp;= ~(1&lt;&lt;PA1);<br />PORTF &amp;= ~(1&lt;&lt;PF6);<br />}<br /><br />void poziomo()<br />{<br />switch (poziom)<br />{<br />case 1:<br />PORTA &amp;= ~(1&lt;&lt;PA5);<br />PORTF &amp;= ~(1&lt;&lt;PF3);<br />PORTA &amp;= ~(1&lt;&lt;PA7);<br />PORTA &amp;= ~(1&lt;&lt;PA2);<br />PORTF &amp;= ~(1&lt;&lt;PF4);<br />PORTA &amp;= ~(1&lt;&lt;PA1);<br />PORTF &amp;= ~(1&lt;&lt;PF6);<br />PORTC |= 1&lt;&lt;PC6;<br />break;<br /><br />case 2:<br />PORTC &amp;= ~(1&lt;&lt;PC6);<br />PORTF &amp;= ~(1&lt;&lt;PF3);<br />PORTA &amp;= ~(1&lt;&lt;PA7);<br />PORTA &amp;= ~(1&lt;&lt;PA2);<br />PORTF &amp;= ~(1&lt;&lt;PF4);<br />PORTA &amp;= ~(1&lt;&lt;PA1);<br />PORTF &amp;= ~(1&lt;&lt;PF6);<br />PORTA |= 1&lt;&lt;PA5;<br />break;<br /><br />case 3:<br />PORTC &amp;= ~(1&lt;&lt;PC6);<br />PORTA &amp;= ~(1&lt;&lt;PA5);<br />PORTA &amp;= ~(1&lt;&lt;PA7);<br />PORTA &amp;= ~(1&lt;&lt;PA2);<br />PORTF &amp;= ~(1&lt;&lt;PF4);<br />PORTA &amp;= ~(1&lt;&lt;PA1);<br />PORTF &amp;= ~(1&lt;&lt;PF6);<br />PORTF |= 1&lt;&lt;PF3;<br />break;<br /><br />case 4:<br />PORTC &amp;= ~(1&lt;&lt;PC6);<br />PORTA &amp;= ~(1&lt;&lt;PA5);<br />PORTF &amp;= ~(1&lt;&lt;PF3);<br />PORTA &amp;= ~(1&lt;&lt;PA2);<br />PORTF &amp;= ~(1&lt;&lt;PF4);<br />PORTA &amp;= ~(1&lt;&lt;PA1);<br />PORTF &amp;= ~(1&lt;&lt;PF6);<br />PORTA |= 1&lt;&lt;PA7;<br />break;<br /><br />case 5:<br />PORTC &amp;= ~(1&lt;&lt;PC6);<br />PORTA &amp;= ~(1&lt;&lt;PA5);<br />PORTF &amp;= ~(1&lt;&lt;PF3);<br />PORTA &amp;= ~(1&lt;&lt;PA7);<br />PORTF &amp;= ~(1&lt;&lt;PF4);<br />PORTA &amp;= ~(1&lt;&lt;PA1);<br />PORTF &amp;= ~(1&lt;&lt;PF6);<br />PORTA |= 1&lt;&lt;PA2;<br />break;<br /><br />case 6:<br />PORTC &amp;= ~(1&lt;&lt;PC6);<br />PORTA &amp;= ~(1&lt;&lt;PA5);<br />PORTF &amp;= ~(1&lt;&lt;PF3);<br />PORTA &amp;= ~(1&lt;&lt;PA7);<br />PORTA &amp;= ~(1&lt;&lt;PA2);<br />PORTA &amp;= ~(1&lt;&lt;PA1);<br />PORTF &amp;= ~(1&lt;&lt;PF6);<br />PORTF |= 1&lt;&lt;PF4;<br />break;<br /><br />case 7:<br />PORTC &amp;= ~(1&lt;&lt;PC6);<br />PORTA &amp;= ~(1&lt;&lt;PA5);<br />PORTF &amp;= ~(1&lt;&lt;PF3);<br />PORTA &amp;= ~(1&lt;&lt;PA7);<br />PORTA &amp;= ~(1&lt;&lt;PA2);<br />PORTF &amp;= ~(1&lt;&lt;PF4);<br />PORTF &amp;= ~(1&lt;&lt;PF6);<br />PORTA |= 1&lt;&lt;PA1;<br />break;<br /><br />case 8:<br />PORTC &amp;= ~(1&lt;&lt;PC6);<br />PORTA &amp;= ~(1&lt;&lt;PA5);<br />PORTF &amp;= ~(1&lt;&lt;PF3);<br />PORTA &amp;= ~(1&lt;&lt;PA7);<br />PORTA &amp;= ~(1&lt;&lt;PA2);<br />PORTF &amp;= ~(1&lt;&lt;PF4);<br />PORTA &amp;= ~(1&lt;&lt;PA1);<br />PORTF |= 1&lt;&lt;PF6;<br />break;<br />}<br />}<br /><br />int main (void)<br />{<br /><br />DDRA = 0xff;<br />DDRB = 0xff;<br />DDRC = 0xff;<br />DDRD = 0xff;<br />DDRE = 0xff;<br />DDRF = 0xff;<br />DDRG = 0xff;<br /><br />PORTA = 0x00;<br />PORTB = 0x00;<br />PORTC = 0x00;<br />PORTD = 0x00;<br />PORTE = 0x00;<br />PORTF = 0x00;<br />PORTG = 0x00;<br /><br />uint8_t liczba = 0;<br />uint8_t czas = 1;<br /><br /><br /><br />sei();<br />deklaracja_USART(__UBRR);<br /><br /><br /><br />while(1)<br />{<br /><br />poziomo();<br /><br />if(!(tablica[liczba] &amp; 0x01)) PORTA &amp;= ~(1&lt;&lt;PA3);<br />if(tablica[liczba] &amp; 0x01) PORTA |= 1&lt;&lt;PA3;<br /><br />if(!(tablica[liczba] &amp; 0x02)) PORTA &amp;= ~(1&lt;&lt;PA4);<br />if(tablica[liczba] &amp; 0x02) PORTA |= 1&lt;&lt;PA4;<br /><br />if(!(tablica[liczba] &amp; 0x04)) PORTG &amp;= ~(1&lt;&lt;PG2);<br />if(tablica[liczba] &amp; 0x04) PORTG |= 1&lt;&lt;PG2;<br /><br />if(!(tablica[liczba] &amp; 0x08)) PORTF &amp;= ~(1&lt;&lt;PF5);<br />if(tablica[liczba] &amp; 0x08) PORTF |= 1&lt;&lt;PF5;<br /><br />if(!(tablica[liczba] &amp; 0x10)) PORTC &amp;= ~(1&lt;&lt;PC7);<br />if(tablica[liczba] &amp; 0x10) PORTC |= 1&lt;&lt;PC7;<br /><br />if(!(tablica[liczba] &amp; 0x20)) PORTF &amp;= ~(1&lt;&lt;PF7);<br />if(tablica[liczba] &amp; 0x20) PORTF |= 1&lt;&lt;PF7;<br /><br />if(!(tablica[liczba] &amp; 0x40)) PORTA &amp;= ~(1&lt;&lt;PA0);<br />if(tablica[liczba] &amp; 0x40) PORTA |= 1&lt;&lt;PA0;<br /><br />if(!(tablica[liczba] &amp; 0x80)) PORTA &amp;= ~(1&lt;&lt;PA6);<br />if(tablica[liczba] &amp; 0x80) PORTA |= 1&lt;&lt;PA6;<br /><br />liczba +=1;<br /><br />//wys2<br /><br />if(!(tablica[liczba] &amp; 0x01)) PORTC &amp;= ~(1&lt;&lt;PC5);<br />if(tablica[liczba] &amp; 0x01) PORTC |= 1&lt;&lt;PC5;<br /><br />if(!(tablica[liczba] &amp; 0x02)) PORTC &amp;= ~(1&lt;&lt;PC4);<br />if(tablica[liczba] &amp; 0x02) PORTC |= 1&lt;&lt;PC4;<br /><br />if(!(tablica[liczba] &amp; 0x04)) PORTC &amp;= ~(1&lt;&lt;PC2);<br />if(tablica[liczba] &amp; 0x04) PORTC |= 1&lt;&lt;PC2;<br /><br />if(!(tablica[liczba] &amp; 0x08)) PORTF &amp;= ~(1&lt;&lt;PF0);<br />if(tablica[liczba] &amp; 0x08) PORTF |= 1&lt;&lt;PF0;<br /><br />if(!(tablica[liczba] &amp; 0x10)) PORTC &amp;= ~(1&lt;&lt;PC1);<br />if(tablica[liczba] &amp; 0x10) PORTC |= 1&lt;&lt;PC1;<br /><br />if(!(tablica[liczba] &amp; 0x20)) PORTF &amp;= ~(1&lt;&lt;PF1);<br />if(tablica[liczba] &amp; 0x20) PORTF |= 1&lt;&lt;PF1;<br /><br />if(!(tablica[liczba] &amp; 0x40)) PORTF &amp;= ~(1&lt;&lt;PF2);<br />if(tablica[liczba] &amp; 0x40) PORTF |= 1&lt;&lt;PF2;<br /><br />if(!(tablica[liczba] &amp; 0x80)) PORTC &amp;= ~(1&lt;&lt;PC3);<br />if(tablica[liczba] &amp; 0x80) PORTC |= 1&lt;&lt;PC3;<br /><br />liczba +=1;<br /><br /><br />//wys3<br /><br />if(!(tablica[liczba] &amp; 0x01)) PORTC &amp;= ~(1&lt;&lt;PC0);<br />if(tablica[liczba] &amp; 0x01) PORTC |= 1&lt;&lt;PC0;<br /><br />if(!(tablica[liczba] &amp; 0x02)) PORTG &amp;= ~(1&lt;&lt;PG1);<br />if(tablica[liczba] &amp; 0x02) PORTG |= 1&lt;&lt;PG1;<br /><br />if(!(tablica[liczba] &amp; 0x04)) PORTD &amp;= ~(1&lt;&lt;PD7);<br />if(tablica[liczba] &amp; 0x04) PORTD |= 1&lt;&lt;PD7;<br /><br />if(!(tablica[liczba] &amp; 0x08)) PORTD &amp;= ~(1&lt;&lt;PD5);<br />if(tablica[liczba] &amp; 0x08) PORTD |= 1&lt;&lt;PD5;<br /><br />if(!(tablica[liczba] &amp; 0x10)) PORTD &amp;= ~(1&lt;&lt;PD6);<br />if(tablica[liczba] &amp; 0x10) PORTD |= 1&lt;&lt;PD6;<br /><br />if(!(tablica[liczba] &amp; 0x20)) PORTD &amp;= ~(1&lt;&lt;PD4);<br />if(tablica[liczba] &amp; 0x20) PORTD |= 1&lt;&lt;PD4;<br /><br />if(!(tablica[liczba] &amp; 0x40)) PORTD &amp;= ~(1&lt;&lt;PD1);<br />if(tablica[liczba] &amp; 0x40) PORTD |= 1&lt;&lt;PD1;<br /><br />if(!(tablica[liczba] &amp; 0x80)) PORTG &amp;= ~(1&lt;&lt;PG0);<br />if(tablica[liczba] &amp; 0x80) PORTG |= 1&lt;&lt;PG0;<br /><br />poziom +=1;<br />liczba +=1;<br />_delay_ms(czas);<br /><br />if(poziom == 9)<br />{<br />liczba = 0;<br />poziom = 1;<br />}<br />}<br />}<br /><br /><br />[/syntax]<br /></div><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=270">Piotrek121</a> — 7 kwi 2012, o 00:13</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-04-06T23:45:22+01:00</updated>
<published>2012-04-06T23:45:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=928&amp;p=5018#p5018</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=928&amp;p=5018#p5018"/>
<title type="html"><![CDATA[Re: Deklaracja USART w atmedze 128]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=928&amp;p=5018#p5018"><![CDATA[
No to dlatego proponuję pomoc - i małymi kroczkami ale dojdziemy jak ten kod polepszyć - tylko od początku warto pisać dobrze a nie, wie, wiem, wiem ale... ale .... to czy siamto <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />Dlatego podpowiedziałem jak coś ubrać w pętlę....<br /><br />Sporo powtarzających się rzeczy można ubrać w oddzielne funkcje -żeby oczyścić widok pętli głównej w main<br /><br />a na prawdę nie ma tu strasznie dużej ilości zmiennych żeby nie można było tego kodu szybko uporządkować i to spokojnie w twoim zakresie ..... no ale to ty musisz robić a ja mogę pomóc ..... bo odwrotnie to będzie ciężko, żeby to ja robił ....<br /><br />I potem będziemy mogli skupić się na najważniejszej rzeczy czyli jak odbierać dane - poza tym jak ty je w ogóle wysyłasz ? czym? skąd ? co ile ? ....<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 6 kwi 2012, o 23:45</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Piotrek121]]></name></author>
<updated>2012-04-06T23:25:29+01:00</updated>
<published>2012-04-06T23:25:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=928&amp;p=5017#p5017</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=928&amp;p=5017#p5017"/>
<title type="html"><![CDATA[Re: Deklaracja USART w atmedze 128]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=928&amp;p=5017#p5017"><![CDATA[
Wiem wiem, i takiej reakcji się spodziewałem, co do pierwszego to sam to napisałem ręcznie w celu sprawdzania czy problem leży po stronie wyświetlania, czy odbioru danych... wtedy wystarczy zmienić dane odpowiedniego bajtu z tablicy (co z reszta można zauważyć na tablica[] 4,7,13,16.<br />Co do typu zmiennych to fakt... mój błąd, nie zastanawiałem się nad zakresami... jak na razie chodziło mi o to, aby działało wszystko, później wszystko bym modernizował.<br />Co do definiowania zmiennych i przypisywanie wartości 0, to sam dla siebie w razie czego będzie mi łatwiej zmienić, sprawdzić szczególnie gdy program jest w fazie testów.<br />Odnośnie _delay_ms(czas); i zmiennej wiem, ze nie należy tak robić, lecz często się przydaje, gdy chce się choćby zmniejszyć jasność dając w pętle wartość czas, u mnie przydawało się to bardzo przy jasności wyświetlacza przy multipleksacji i jak na razie widać nie zmieniłem na konkretną wartość.<br /><br />I odnośnie głównej pętli... niestety, ale nie jestem w stanie na chwilę obecną nic innego wymyśleć... niestety, w celu stworzenia mniejszej płytki wyświetlacza musiałem podłączać pod różne porty, które niestety są rozstrzelone po całym uC... tez mi się to za bardzo nie podoba no ale co poradzę...<br /><br />Postaram się zmodyfikować kod, aby tak nie raził w oczy... ale niestety nie wydaje mi się, abym na moim poziomie nie zrobię wszystkiego tak, aby było tak jak powinno być.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=270">Piotrek121</a> — 6 kwi 2012, o 23:25</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-04-06T23:01:07+01:00</updated>
<published>2012-04-06T23:01:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=928&amp;p=5011#p5011</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=928&amp;p=5011#p5011"/>
<title type="html"><![CDATA[Re: Deklaracja USART w atmedze 128]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=928&amp;p=5011#p5011"><![CDATA[
Ok odniosę się na razie do niektórych błędów a jest ich jak mi się wydaje CAŁA masa <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><br /><br />po pierwsze czyż kolega w ogóle NIC a NIC nie czytał na temat pętli ???? przecież to ZGROZA pisać takie coś:<br /><br />[syntax=c]tablica[0] = 0xff;<br />tablica[1] = 0xff;<br />tablica[2] = 0xff;<br />tablica[3] = 0xff;<br />tablica[4] = 0x0f;<br />tablica[5] = 0xff;<br />tablica[6] = 0xff;<br />tablica[7] = 0x0f;<br />tablica[8] = 0xff;<br />tablica[9] = 0xff;<br />tablica[10] = 0xff;<br />tablica[11] = 0xff;<br />tablica[12] = 0xff;<br />tablica[13] = 0x0f;<br />tablica[14] = 0xff;<br />tablica[15] = 0xff;<br />tablica[16] = 0xf0;<br />tablica[17] = 0xff;<br />tablica[18] = 0xff;<br />tablica[19] = 0xff;<br />tablica[20] = 0xff;<br />tablica[21] = 0xff;<br />tablica[22] = 0xff;<br />tablica[23] = 0xff;[/syntax]<br /><br />Nawet powiedziałbym ZGROZO - MASAKRA , proszę jak najszybciej pozmieniać wszystkie te części kodu które można wrzucić w pętle - bo tego się czytać nawet nie da - toż to można zapisać w 1 linii kodu!!!, pierwszy i ostatni raz udzielam takiej podpowiedzi:<br /><br />[syntax=c]uint8_t i;<br />for( i=0 ; i&lt;24 ; i++ ) tablica[i] = 0xFF;[/syntax]<br /><br />Poza tym TOTALNE szastanie - bo tak trzeba powiedzieć - typami danych. Wynika to albo z niefrasobliwości, która w programowaniu procków doprowadzi kiedyś do szaleństwa <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> albo co gorsze z braku podstawowej wiedzy na temat typów danych w C ..... oj trzeba to doczytać, i nigdy na drugi raz nie definiować np zmiennej :<br /><br />int licznik; (czyli 16-bitowej) dla zmiennej, która w trakcie pracy przyjmie wartości TYLKO od 0 do 24 - czyli zmieści się w jednym bajcie a zatem spokojnie można użyć typu jedno-bajtowego uint8_t !<br /><br />proszę się jak najszybciej przestawić na typy AVR GCC czyli:<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">uint8_t<br />uint16_t<br />uint32_t</div><br /><br />a nie tam:<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">unsigned short int<br />unsigned int</div><br /><br />itd - bo będą kłopoty później oj będą ..... a zresztą czy kolega lubi tak się katować żeby aż tyle klepać w tą klawiaturę ?<br /><br />Kolejna rzecz - co to kurczę JEST ? <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> za fantasmagoria ???????<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">UBRR1H = (unsigned char)(ubrr &gt;&gt; 5);</div><br /><br />No - nie nawet nie podam jak ma być - bo nie dość, że kolega ma podane to jak na patelni i w mojej książce to także WYRAŹNIE w nocie PDF ...... no ale widać, że coś nieteges jeszcze z przesunięciami bitowymi - a jeśli tak? to lepiej dopytać jak się czegoś nie rozumie zamiast zgadywać albo pisać tak długi program - bo błąd błędem pogania <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><br /><br />Te zmienne:<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">volatile int poziom = 1;<br />        volatile int licznik = 0;</div><br /><br />poza tym że mogą być uint8_t a nie int, to są to zmienne globalne .... i o ile poziom można zainicjalizować bo ma mieć wartość inną niż 0 to po co inicjalizacja zerem - zmiennej licznik ?<br /><br />Skoro zmienna bajty to stała - to po jakiego grzyba ją definiować jako zmienną i jeszcze porównanie robić ze zmienną w przerwaniu ?<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">if(licznik == bajty) licznik = 0;</div><br /><br />a wszystko jeszcze na deser dzieje się tu na liczbach 16-bitowych, które i tak nigdy nie przekroczą zakresu 8-bitów - a ile na to pamięci RAM jest marnowanej oraz ile czasu jest tracone to aż strach się bać pomyśleć.<br /><br />----------------<br /><br />Kolejna rzecz - już komuś w innym wątku pisałem - proszę w kodach zamieszczanych na tym forum używać przesunięć bitowych zamiast tych durnych makr _BV() ..... bo od razu widzę, że jest problem ze zrozumieniem przesunięć - i te makra w niczym nie pomogą tylko będą przeszkadzać...... Zastrzegam sobie na przyszłość, że będę pomagał tylko gdy ktoś będzie pisał tu kody zgodnie z dobrą sztuką programowania OK ?<br /><br />Następny kwiatek:<br /><br />jest sobie funkcja:<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">int poziomo() {<br /><br />}</div><br /><br />Ok już nie będę płakał że nie ma void w nawiasach gdzie brak argumentów - ale na ZEUSA jest określony typ zwracanego rezultatu na <strong>int </strong>- a gdzie jest zwracany ten rezultat za pomocą <strong>return </strong>????? Albo on jest potrzebny albo nie ..... albo piszemy program przejrzyście albo nie .....<br /><br />ale tu dzieje się widzę gorsza rzecz - kolega TOTALNIE nie zwraca uwagi na WARNINGI ..... !!!!!!<br /><br />czy kolega programuje już w ECLIPSE ????? sorki jeśli się powtarzam z tym pytaniem - ale w ECLIPSE nie dałoby rady nie zauważyć TYCH WARNIGÓW/BŁĘDZIORÓW bo tak trzeba je nazwać w tym mini kodzie ..... no sorki - ale tak pisać programów to nie można ..... albo tak pisać z setkami warningów i potem zwracać się z pytaniem na forum jakby nigdy nic się nie stało i nikt nie widział nigdzie żadnego warninga <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><br /><br />---------------------<br /><br />no i teraz do meritum...... to co się dzieje w pętli głównej to totalny MISZ-MASZ ..... coś tam się zeruje za pomocą tej funkcji poziomo() a potem w kółko miliony IF'ów sprawdzają trzysta tysięcy razy na sekundę tablicę, która napełniana ma być w przerwaniu zupełnie asynchronicznie - totalnie w oderwaniu od tego co dzieje się w przerwaniu ...... Jak to ma prawo działać - toż to CHAOS  i nic więcej <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><br /><br />----------------------<br /><br />ale kolejna masakra to:<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">_delay_ms(czas);</div><br /><br />NIGDY w życiu nie wolno przekazywać do _delay_ms() argumentów w postaci zmiennej. Wprawdzie masz procek ATmega128 to nawet nie zwracasz uwagi na to że nagle po takiej operacji i po kompilacji przybywa ci parę niepotrzebnych kilobajtów we Flashu. Gdybyś robił na ATtiny2313 to już by wykorzystanie pamięci po tej linijce wyniosło np 120% .....<br /><br />-----------------------<br /><br />OK - sporo opisanych tu przeze mnie problemów nie ma bezpośredniego wpływu na złe działanie tego programu - ale nieziemsko utrudnia analizę i pracę - nie tylko mi czy komukolwiek na forum (tak nawet nie wypada przedstawiać kodu) ..... ale co najgorsze tobie samemu sprawia poważny problem w analizie i stąd nawarstwiają się błędy i brak czytelności kodu<br /><br />proponuję to wszystko popoprawiać i wyprowadzić ładnie a wtedy będziemy się mogli skupić na rzeczywistym problemie OK ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 6 kwi 2012, o 23:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Piotrek121]]></name></author>
<updated>2012-04-06T22:16:22+01:00</updated>
<published>2012-04-06T22:16:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=928&amp;p=5008#p5008</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=928&amp;p=5008#p5008"/>
<title type="html"><![CDATA[Re: Deklaracja USART w atmedze 128]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=928&amp;p=5008#p5008"><![CDATA[
Proszę, to mój kod<br /><br /><br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />[syntax=c]<br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/delay.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br /><br />#define FOSC 11059200// Clock Speed<br />#define BAUD 115200<br />#define MYUBRR FOSC/16/BAUD-1<br /><br />volatile int poziom = 1;<br />volatile int licznik = 0;<br />int bajty = 24;<br />volatile unsigned short int tablica[24];<br /><br /><br />void deklaracja_USART( unsigned int ubrr)<br />{<br />UBRR1H = (unsigned char)(ubrr &gt;&gt; 5);<br />UBRR1L = (unsigned char)ubrr;<br />UCSR1B = (1&lt;&lt;RXEN1)|(1&lt;&lt;RXC1);<br />UCSR1C = (3&lt;&lt;UCSZ01);<br />}<br /><br />int czysc()<br />{<br />PORTC &amp;= ~(_BV(PC6));<br />PORTA &amp;= ~(_BV(PA5));<br />PORTF &amp;= ~(_BV(PF3));<br />PORTA &amp;= ~(_BV(PA7));<br />PORTA &amp;= ~(_BV(PA2));<br />PORTF &amp;= ~(_BV(PF4));<br />PORTA &amp;= ~(_BV(PA1));<br />PORTF &amp;= ~(_BV(PF6));<br />}<br /><br />ISR( USART1_RX_vect )<br />{<br />if(licznik == bajty) licznik = 0;<br />tablica[licznik] = UDR1;<br />licznik +=1;<br />}<br /><br /><br /><br />int poziomo()<br />{<br />if(poziom == 1)<br />{<br />PORTA &amp;= ~(_BV(PA5));<br />PORTF &amp;= ~(_BV(PF3));<br />PORTA &amp;= ~(_BV(PA7));<br />PORTA &amp;= ~(_BV(PA2));<br />PORTF &amp;= ~(_BV(PF4));<br />PORTA &amp;= ~(_BV(PA1));<br />PORTF &amp;= ~(_BV(PF6));<br />PORTC |= _BV(PC6);<br />}<br /><br />if(poziom == 2)<br />{<br />PORTC &amp;= ~(_BV(PC6));<br />PORTF &amp;= ~(_BV(PF3));<br />PORTA &amp;= ~(_BV(PA7));<br />PORTA &amp;= ~(_BV(PA2));<br />PORTF &amp;= ~(_BV(PF4));<br />PORTA &amp;= ~(_BV(PA1));<br />PORTF &amp;= ~(_BV(PF6));<br />PORTA |= _BV(PA5);<br /><br />}<br />}<br /><br /><br />int main (void)<br />{<br /><br />DDRA = 0xff;<br />DDRB = 0xff;<br />DDRC = 0xff;<br />DDRD = 0xff;<br />DDRE = 0xff;<br />DDRF = 0xff;<br />DDRG = 0xff;<br /><br />PORTA = 0x00;<br />PORTB = 0x00;<br />PORTC = 0x00;<br />PORTD = 0x00;<br />PORTE = 0x00;<br />PORTF = 0x00;<br />PORTG = 0x00;<br /><br />int liczba = 0;<br /><br />int czas = 1;<br /><br /><br /><br />sei();<br />deklaracja_USART(MYUBRR);<br /><br />tablica[0] = 0xff;<br />tablica[1] = 0xff;<br />tablica[2] = 0xff;<br />tablica[3] = 0xff;<br />tablica[4] = 0x0f;<br />tablica[5] = 0xff;<br />tablica[6] = 0xff;<br />tablica[7] = 0x0f;<br />tablica[8] = 0xff;<br />tablica[9] = 0xff;<br />tablica[10] = 0xff;<br />tablica[11] = 0xff;<br />tablica[12] = 0xff;<br />tablica[13] = 0x0f;<br />tablica[14] = 0xff;<br />tablica[15] = 0xff;<br />tablica[16] = 0xf0;<br />tablica[17] = 0xff;<br />tablica[18] = 0xff;<br />tablica[19] = 0xff;<br />tablica[20] = 0xff;<br />tablica[21] = 0xff;<br />tablica[22] = 0xff;<br />tablica[23] = 0xff;<br /><br /><br />while(1)<br />{<br /><br />poziomo();<br /><br />if(!(tablica[liczba] &amp; 0x01)) PORTA &amp;= ~(_BV(PA3));<br />if(tablica[liczba] &amp; 0x01) PORTA |= _BV(PA3);<br /><br />if(!(tablica[liczba] &amp; 0x02)) PORTA &amp;= ~(_BV(PA4));<br />if(tablica[liczba] &amp; 0x02) PORTA |= _BV(PA4);<br /><br />if(!(tablica[liczba] &amp; 0x04)) PORTG &amp;= ~(_BV(PG2));<br />if(tablica[liczba] &amp; 0x04) PORTG |= _BV(PG2);<br /><br />if(!(tablica[liczba] &amp; 0x08)) PORTF &amp;= ~(_BV(PF5));<br />if(tablica[liczba] &amp; 0x08) PORTF |= _BV(PF5);<br /><br />if(!(tablica[liczba] &amp; 0x10)) PORTC &amp;= ~(_BV(PC7));<br />if(tablica[liczba] &amp; 0x10) PORTC |= _BV(PC7);<br /><br />if(!(tablica[liczba] &amp; 0x20)) PORTF &amp;= ~(_BV(PF7));<br />if(tablica[liczba] &amp; 0x20) PORTF |= _BV(PF7);<br /><br />if(!(tablica[liczba] &amp; 0x40)) PORTA &amp;= ~(_BV(PA0));<br />if(tablica[liczba] &amp; 0x40) PORTA |= _BV(PA0);<br /><br />if(!(tablica[liczba] &amp; 0x80)) PORTA &amp;= ~(_BV(PA6));<br />if(tablica[liczba] &amp; 0x80) PORTA |= _BV(PA6);<br /><br />liczba +=1;<br /><br />//wys2<br /><br />if(!(tablica[liczba] &amp; 0x01)) PORTC &amp;= ~(_BV(PC5));<br />if(tablica[liczba] &amp; 0x01) PORTC |= _BV(PC5);<br /><br />if(!(tablica[liczba] &amp; 0x02)) PORTC &amp;= ~(_BV(PC4));<br />if(tablica[liczba] &amp; 0x02) PORTC |= _BV(PC4);<br /><br />if(!(tablica[liczba] &amp; 0x04)) PORTC &amp;= ~(_BV(PC2));<br />if(tablica[liczba] &amp; 0x04) PORTC |= _BV(PC2);<br /><br />if(!(tablica[liczba] &amp; 0x08)) PORTF &amp;= ~(_BV(PF0));<br />if(tablica[liczba] &amp; 0x08) PORTF |= _BV(PF0);<br /><br />if(!(tablica[liczba] &amp; 0x10)) PORTC &amp;= ~(_BV(PC1));<br />if(tablica[liczba] &amp; 0x10) PORTC |= _BV(PC1);<br /><br />if(!(tablica[liczba] &amp; 0x20)) PORTF &amp;= ~(_BV(PF1));<br />if(tablica[liczba] &amp; 0x20) PORTF |= _BV(PF1);<br /><br />if(!(tablica[liczba] &amp; 0x40)) PORTF &amp;= ~(_BV(PF2));<br />if(tablica[liczba] &amp; 0x40) PORTF |= _BV(PF2);<br /><br />if(!(tablica[liczba] &amp; 0x80)) PORTC &amp;= ~(_BV(PC3));<br />if(tablica[liczba] &amp; 0x80) PORTC |= _BV(PC3);<br /><br /><br />liczba +=1;<br /><br /><br />//wys3<br /><br />if(!(tablica[liczba] &amp; 0x01)) PORTC &amp;= ~(_BV(PC0));<br />if(tablica[liczba] &amp; 0x01) PORTC |= _BV(PC0);<br /><br />if(!(tablica[liczba] &amp; 0x02)) PORTG &amp;= ~(_BV(PG1));<br />if(tablica[liczba] &amp; 0x02) PORTG |= _BV(PG1);<br /><br />if(!(tablica[liczba] &amp; 0x04)) PORTD &amp;= ~(_BV(PD7));<br />if(tablica[liczba] &amp; 0x04) PORTD |= _BV(PD7);<br /><br />if(!(tablica[liczba] &amp; 0x08)) PORTD &amp;= ~(_BV(PD5));<br />if(tablica[liczba] &amp; 0x08) PORTD |= _BV(PD5);<br /><br />if(!(tablica[liczba] &amp; 0x10)) PORTD &amp;= ~(_BV(PD6));<br />if(tablica[liczba] &amp; 0x10) PORTD |= _BV(PD6);<br /><br />if(!(tablica[liczba] &amp; 0x20)) PORTD &amp;= ~(_BV(PD4));<br />if(tablica[liczba] &amp; 0x20) PORTD |= _BV(PD4);<br /><br />if(!(tablica[liczba] &amp; 0x40)) PORTD &amp;= ~(_BV(PD1));<br />if(tablica[liczba] &amp; 0x40) PORTD |= _BV(PD1);<br /><br />if(!(tablica[liczba] &amp; 0x80)) PORTG &amp;= ~(_BV(PG0));<br />if(tablica[liczba] &amp; 0x80) PORTG |= _BV(PG0);<br />poziom +=1;<br />liczba +=1;<br />_delay_ms(czas);<br /><br /><br />if(poziom == 9)<br />{<br />liczba = 0;<br />poziom = 1;<br />}<br />}<br />}<br /><br />[/syntax]<br /></div><br /><br /><br /><br />Ogólnie mój program działa tak: uC odbiera 24 bajty a nastepnie multipleksujac dane (0 i 1) wyswietla na matrycy led<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=270">Piotrek121</a> — 6 kwi 2012, o 22:16</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-04-06T22:13:27+01:00</updated>
<published>2012-04-06T22:13:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=928&amp;p=5006#p5006</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=928&amp;p=5006#p5006"/>
<title type="html"><![CDATA[Re: Deklaracja USART w atmedze 128]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=928&amp;p=5006#p5006"><![CDATA[
Ja już pisałem, że tak na sucho z opowieści to nic nie pomogę - bo można tylko wróżyć. Pokaż kod po poprawkach - tylko cały - bo błędów mogłeś jeszcze narobić gdzieś indziej - chociażby np w definicji zmiennej licznik.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 6 kwi 2012, o 22:13</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Piotrek121]]></name></author>
<updated>2012-04-06T22:02:09+01:00</updated>
<published>2012-04-06T22:02:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=928&amp;p=5004#p5004</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=928&amp;p=5004#p5004"/>
<title type="html"><![CDATA[Re: Deklaracja USART w atmedze 128]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=928&amp;p=5004#p5004"><![CDATA[
Ups... mój błąd... coś musiałem źle przeczytać, w tabeli dla 11059200 i prędkości 115200 mam 5 lecz to i tak nic nie zmieniło <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=270">Piotrek121</a> — 6 kwi 2012, o 22:02</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-04-06T21:36:56+01:00</updated>
<published>2012-04-06T21:36:56+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=928&amp;p=4997#p4997</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=928&amp;p=4997#p4997"/>
<title type="html"><![CDATA[Re: Deklaracja USART w atmedze 128]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=928&amp;p=4997#p4997"><![CDATA[
<div class="quotetitle">Piotrek121 napisał(a):</div><div class="quotecontent"><br />UBRR1H = (unsigned char)(ubrr &gt;&gt; <strong><span style="color: #0040FF"><span style="font-size: 150%; line-height: normal">16</span></span></strong>);<br /><br />moge dodac, ze przy linijce UBRR1H = (unsigned char)(ubrr &gt;&gt; 16); wywala mi warninga : right shift count &gt;= width of type<br /></div><br /><br />No ja na miejscu kompilatora też bym dostał zawrotu głowy jakby mi ktoś kazał zawartość 16-bitowej zmiennej przesunąć o 16 bitów w prawo <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> ...... obejrzyj sobie te moje rysunki dotyczące przesunięć bitowych w książce <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> zobacz co się stanie ze wszystkimi ważnymi bitami - wylecą poza bajt i spadną na podłogę <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> ...... albo to literówka to 16 .... albo nie wiem gdzie kolega podpatrzył taki kod ? Mam nadzieję że nie w książce ? (kurka wodna - oby)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 6 kwi 2012, o 21:36</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Piotrek121]]></name></author>
<updated>2012-04-06T21:31:36+01:00</updated>
<published>2012-04-06T21:31:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=928&amp;p=4996#p4996</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=928&amp;p=4996#p4996"/>
<title type="html"><![CDATA[Re: Deklaracja USART w atmedze 128]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=928&amp;p=4996#p4996"><![CDATA[
Pojawił się kolejny problem, a mianowicie odbieram tylko 7 bitów zamiast 8 moja deklaracja i kod przerwania wygląda tak:<br /><br />void deklaracja_USART( unsigned int ubrr)<br />{<br /><br />UBRR1H = (unsigned char)(ubrr &gt;&gt; 16);<br />UBRR1L = (unsigned char)ubrr;<br />UCSR1B = (1&lt;&lt;RXEN1)|(1&lt;&lt;RXC1);<br />UCSR1C = (3&lt;&lt;UCSZ01);<br />}<br /><br /><br /><br /><br /><br /><br />ISR( USART1_RX_vect )<br />{<br />if(licznik == bajty) licznik = 0;<br />tablica[licznik] = UDR1;<br />licznik +=1;<br />}<br /><br />moge dodac, ze przy linijce UBRR1H = (unsigned char)(ubrr &gt;&gt; 16); wywala mi warninga : right shift count &gt;= width of type<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=270">Piotrek121</a> — 6 kwi 2012, o 21:31</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-03-27T23:50:30+01:00</updated>
<published>2012-03-27T23:50:30+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=928&amp;p=4693#p4693</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=928&amp;p=4693#p4693"/>
<title type="html"><![CDATA[Re: Deklaracja USART w atmedze 128]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=928&amp;p=4693#p4693"><![CDATA[
Ok teraz mamy już jakiś konkret. Napisz jeszcze z jakiej wwrsji eclipsa korzystasz , czy tej z książki ? Czy sam coś instalowałeś? Bo błąd jest dziwny to fakt. A i spakuj może swój projekt do zipa i podeślij mi na maila to sprawdzę<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 27 mar 2012, o 23:50</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Piotrek121]]></name></author>
<updated>2012-03-27T23:27:26+01:00</updated>
<published>2012-03-27T23:27:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=928&amp;p=4692#p4692</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=928&amp;p=4692#p4692"/>
<title type="html"><![CDATA[Re: Deklaracja USART w atmedze 128]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=928&amp;p=4692#p4692"><![CDATA[
Proszę mi wybaczyć, ale atmega128 została zdefiniowana wraz z częstotliwością tak jak na filmiku, owszem mam wyłączone autosave, lecz przed kompilacja sam zapisuje plik, co mogę jeszcze dodać...<br />Po mimo wywalenia błędów kompilator i tak wypuszcza hex<br /><a href="http://iv.pl/viewer.php?file=25369016273588008343.jpg"  class="postlink"><img src="http://iv.pl/images/25369016273588008343_thumb.jpg" alt="Obrazek" /></a><br />przykładowe błędy, które mi wywaliło<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=270">Piotrek121</a> — 27 mar 2012, o 23:27</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-03-27T23:01:28+01:00</updated>
<published>2012-03-27T23:01:28+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=928&amp;p=4690#p4690</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=928&amp;p=4690#p4690"/>
<title type="html"><![CDATA[Re: Deklaracja USART w atmedze 128]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=928&amp;p=4690#p4690"><![CDATA[
<div class="quotetitle">Piotrek121 napisał(a):</div><div class="quotecontent"><br />Dodam jeszcze jedną sensacje... obojętnie co wpisze program i tak się kompiluje <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><br /></div><br /><br />To akurat nie żadna sensacja tylko twój prosty i to opisany przeze mnie i pokazany na filmach błąd.....<br /><br />naprawdę szkoda że się tyle namęczyłem z tymi filmikami a potem ich nikt nie ogląda i odkrywa sensacje, czasem to jest frustrujące <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><br /><br />Kompiluje ci się wszystko bo nie masz domyślnie AutoSave ustawione a sam też nie wpadłeś na pomysł żeby zapisać to co zmieniasz w projekcie przed każdą kompilacją..... i to masz pokazane w filmach na DVD<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 27 mar 2012, o 23:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-03-27T22:59:09+01:00</updated>
<published>2012-03-27T22:59:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=928&amp;p=4689#p4689</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=928&amp;p=4689#p4689"/>
<title type="html"><![CDATA[Re: Deklaracja USART w atmedze 128]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=928&amp;p=4689#p4689"><![CDATA[
A zdefiniowałeś procesor do swojego projektu w Eclipse ? bo coś mi się zdaje że nie ? <br /><br />A obejrzałeś folmy/lekcje VIDEO na DVD ? o tym jak się działa w Eclipse, jak się definiuje procesor, częstotliwość itp ?<br /><br />Za mało piszesz żeby można było coś pomóc - sorki<br /><br />Gdy ja pierwszy raz działałem i poznawałem Eclipse a nie miałem żadnych książek czy poradników i musiałem się męczyć z tym kilka miesięcy - to dla mnie nie było wymówką że np w AVR Studio 4.18 mi działa a w Eclipse nie - szukałem dotąd aż znalazłem - bo przecież ECLIPSE to poważne i wielkie narzędzie z którego korzystają tysiące ludzi a nie kilku nawiedzonych <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 27 mar 2012, o 22:59</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SunRiver]]></name></author>
<updated>2012-03-27T22:22:08+01:00</updated>
<published>2012-03-27T22:22:08+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=928&amp;p=4686#p4686</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=928&amp;p=4686#p4686"/>
<title type="html"><![CDATA[Re: Deklaracja USART w atmedze 128]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=928&amp;p=4686#p4686"><![CDATA[
Przenoszenie programu z PN do eclipse nie jest takie proste , w sumie szkoda  no ale  to tak jakby edlina do worda porównywać <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=58">SunRiver</a> — 27 mar 2012, o 22:22</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Piotrek121]]></name></author>
<updated>2012-03-27T22:40:05+01:00</updated>
<published>2012-03-27T21:59:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=928&amp;p=4684#p4684</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=928&amp;p=4684#p4684"/>
<title type="html"><![CDATA[Re: Deklaracja USART w atmedze 128]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=928&amp;p=4684#p4684"><![CDATA[
W końcu znalazłem troche wolnego czasu i przerzuciłem się na ECLIPSE jednak pojawił się problem... kompilator wywala mi komendy: DDRx PINx PORTx  na samej górze mam:<br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/delay.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br /><br />dziwi mnie to, bo na zwyklym WinAVR działa normalnie<br /><br /><br />Dodam jeszcze jedną sensacje... obojętnie co wpisze program i tak się kompiluje <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><br /><br /><br />**** Budowanie of configuration Release for project matryca ****<br /><br />make all <br />Invoking: Print Size<br />avr-size --format=avr --mcu=atmega128 matryca.elf<br />AVR Memory Usage<br />----------------<br />Device: atmega128<br /><br />Program:    1906 bytes (1.5% Full)<br />(.text + .data + .bootloader)<br /><br />Data:         62 bytes (1.5% Full)<br />(.data + .bss + .noinit)<br /><br /><br />Finished building: sizedummy<br /> <br /><br />**** Build Finished ****<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=270">Piotrek121</a> — 27 mar 2012, o 21:59</p><hr />
]]></content>
</entry>
</feed>