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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-01-21T20:07:11+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=5629&amp;mode</id>
<entry>
<author><name><![CDATA[WoodPaker]]></name></author>
<updated>2014-01-21T20:07:11+01:00</updated>
<published>2014-01-21T20:07:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5629&amp;p=66066#p66066</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5629&amp;p=66066#p66066"/>
<title type="html"><![CDATA[Re: Odczyt danych z pamięci EEPROM 24C16]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5629&amp;p=66066#p66066"><![CDATA[
Działa, podziękował. Niech Ci Bozia w dzieciach wynagrodzi  <img src="https://forum.atnel.pl/images/smilies/icon_mrgreen.gif" alt=":mrgreen:" title="Pan Zielony" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1425">WoodPaker</a> — 21 sty 2014, o 20:07</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[xor]]></name></author>
<updated>2014-01-21T15:49:55+01:00</updated>
<published>2014-01-21T15:49:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5629&amp;p=66003#p66003</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5629&amp;p=66003#p66003"/>
<title type="html"><![CDATA[Re: Odczyt danych z pamięci EEPROM 24C16]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5629&amp;p=66003#p66003"><![CDATA[
Funkcja EEReadByte jako drugi parametr powinna mieć wskaźnik do uint8_t, czyli powinno być jakoś tak: [syntax=c]EEReadByte(i, &amp;Rysunek&#91;i&#93;)[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1774">xor</a> — 21 sty 2014, o 15:49</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[WoodPaker]]></name></author>
<updated>2014-01-21T15:07:36+01:00</updated>
<published>2014-01-21T15:07:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5629&amp;p=65988#p65988</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5629&amp;p=65988#p65988"/>
<title type="html"><![CDATA[Odczyt danych z pamięci EEPROM 24C16]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5629&amp;p=65988#p65988"><![CDATA[
Witam Szanownych i tych mniej Szanownych Forumowiczów (czyli witam wszystkich)<br />Mam takie małe pytanko. Ale zanim je zadam to opowiem od Adama i Ewy jak to ze lnem było.<br />Otóż postanowiłem stworzyć pewne urządzonko, którego elementem interakcji z użytkownikiem jest m.in. wyświetlacz NOKIA 5110. Wyświetlacz o wymiarach 84x48 ma to do siebie, że na wyświetlenie o pełnych wymiarach potrzeba 506 bajtów. Biorąc pod uwagę to, że ATMEGA8 (bo takiego procesora używam) ma tylko 1024 bajty SRAMu łatwo domyślić się, że niewiele można wrzucić obrazków zwłaszcza, jak się ma w pamięci dane dla czcionki. Dlatego w tym miejscu z pomocą miała mi przyjść kość 24C16. Pewnie w tym miejscu padnie pytanie &quot;dlaczego właśnie ta kość?&quot;, dlatego, że taką miałem na stanie. Pamięć ta charakteryzuje się tym, że ma wielkość 16 kB pogrupowane po 8x2048 bajtów. Mnie w zupełności wystarczy 2kB. Więc pogrzebałem w internecie i znalazłem te stronę --&gt; <a href="http://www.embedds.com/programming-avr-i2c-interface/"  class="postlink">http://www.embedds.com/programming-avr-i2c-interface/</a>. Na płytce stykowej przyczepiłem wszystkie elementy tj, wyświetlacz, procesor, zasilanie i pamięć. Wpisałem obrazek do pamięci procesora i napisałem program zapisujący go w EEPROMie. Wszystko poszło jak po maśle. Oczywiście wcześniej zapisałem kilka bajtów w różnych miejscach, wyciągnąłem kość, napisałem program odczytujący, kość podłączyłem i odczytałem dane, które wyświetliłem na LCD. Wszystko pięknie działało. To spróbowałem wrzucić obrazek. Obrazek był wielkości 192 bajtów więc napisałem program w pętli, który wyglądał mniej więcej tak (pisze z pracy, a tu nie mam programu)<br />[syntax=c]for(i=1;i&lt;=191;i++)<br />{<br />     if (EEWriteByte(i, Rysunek&#91;i&#93;) != ERROR)<br />    {<br />        itoa(i,liczba,10);<br />        LCD_write_string(0,0,liczba);<br />        _delay_ms(150);<br />    }<br />    else<br />    {<br />        LCD_write_string(0,1,&quot;NIEUDANE&quot;)<br />        _delay_ms(150);<br />     }<br />}[/syntax]<br /><br />No i zapis danych do pamięci się udał. Przyszedł czas na odczyt danych  z pamięci. W tym celu zmieniłem powyższy program na troszkę inny:<br />[syntax=c]for(i=1;i&lt;=191;i++)<br />{<br />     if (EEReadByte(i, Rysunek&#91;i&#93;) != ERROR)<br />    {<br />        itoa(i,liczba,10);<br />        LCD_write_string(0,0,liczba);<br />        _delay_ms(150);<br />    }<br />    else<br />    {<br />        LCD_write_string(0,1,&quot;NIEUDANE&quot;)<br />        _delay_ms(150);<br />     }<br />}[/syntax]<br /><br />I tu pojawia się problem. Całość dochodzi do 56 iteracji, a następnie ekran się robi biały, a wszystko wygląda jakby się zawiesiło. Podejrzewam, że wyszedłem poza dostępną pamięć (w pamięci w końcu jest też czcionka, która zajmuje 75%).  Czy ktoś może mi powiedzieć co jest nie tak? W sumie nie wiem gdzie popełniłem błąd. Jakieś pomysły? Dziękuję za wszelkie rady<br /><br />Dodam tylko, że Rysunek jest zadeklarowany jako<br />[syntax=c]unsigned char Rysunek&#91;192&#93;{ 0x00, 0x00 ...[/syntax]<br /><br />Dodam też, że na początku w zmiennej rysunek też się coś znajduje bo chciałem wyświetlić rysunek, nadpisać go z EEPROMu i wyświetlić drugi rysunek ten co był w EEPROMie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1425">WoodPaker</a> — 21 sty 2014, o 15:07</p><hr />
]]></content>
</entry>
</feed>