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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2012-12-10T14:48:21+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=1893&amp;mode</id>
<entry>
<author><name><![CDATA[Janadamis]]></name></author>
<updated>2012-12-10T14:48:21+01:00</updated>
<published>2012-12-10T14:48:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1893&amp;p=20734#p20734</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1893&amp;p=20734#p20734"/>
<title type="html"><![CDATA[Re: TWI, Zapis EEPROM nie działa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1893&amp;p=20734#p20734"><![CDATA[
Ok wielkie dzięki za pomoc <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=288">Janadamis</a> — 10 gru 2012, o 14:48</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-12-09T15:36:12+01:00</updated>
<published>2012-12-09T15:36:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1893&amp;p=20661#p20661</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1893&amp;p=20661#p20661"/>
<title type="html"><![CDATA[Re: TWI, Zapis EEPROM nie działa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1893&amp;p=20661#p20661"><![CDATA[
<div class="quotetitle">Janadamis napisał(a):</div><div class="quotecontent"><br />... ale ja chciałem spróbować napisać swoja funkcję, to chyba nie grzech?<br /></div><br /><br />Pewnie, że nie grzech - ale warto jednak - gdy coś działa - wracać do tego i analizować jak działa - szybko wyszłoby ci to o czym pisze wyżej (słusznie zresztą) kolega Krauser. Czyli jakby nie mówić - apiać powrót do teorii i jak działają funkcje oraz przekazywanie do nich parametrów.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 9 gru 2012, o 15:36</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Janadamis]]></name></author>
<updated>2012-12-09T11:00:17+01:00</updated>
<published>2012-12-09T11:00:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1893&amp;p=20633#p20633</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1893&amp;p=20633#p20633"/>
<title type="html"><![CDATA[Re: TWI, Zapis EEPROM nie działa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1893&amp;p=20633#p20633"><![CDATA[
Ok dzięki<br />Już rozumie o co chodzi.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=288">Janadamis</a> — 9 gru 2012, o 11:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2012-12-09T10:25:20+01:00</updated>
<published>2012-12-09T10:25:20+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1893&amp;p=20629#p20629</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1893&amp;p=20629#p20629"/>
<title type="html"><![CDATA[Re: TWI, Zapis EEPROM nie działa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1893&amp;p=20629#p20629"><![CDATA[
Jeśli funkcja pobiera argument liczbowy to robi kopię. I w funkcji odczytu operujesz tak naprawdę na zmiennej tymczasowej, która przestaje istnieć w momencie opuszczenia funkcji. Tablicę można pobrać tylko przez wskaźnik. Przeanalizuj takie przypadki i porównaj z tym co robisz.<br />[syntax=c]uint8_t liczba; //zmienna globalna<br /><br />void zwieksz(uint8_t x);<br />void zwieksz_2(void);<br />void zwieksz_3(uint8_t * x);<br /><br /><br />int main(void)<br />{<br />   //...<br />   lcd_int(liczba);<br />   zwieksz(liczba);<br />   lcd_int(liczba);<br />   zwieksz_2();<br />   lcd_int(liczba);<br />   zwieksz_3(&amp;liczba);<br /><br />   while(1)<br />   {<br />   }<br />   return 0;<br />}<br /><br />void zwieksz(uint8_t x)<br />{<br />   x++;<br />}<br /><br />void zwieksz_2(void)<br />{<br />   liczba++;<br />}<br /><br />void zwieksz_3(uint8_t * x)<br />{<br />   (*x)++;<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 9 gru 2012, o 10:25</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Janadamis]]></name></author>
<updated>2012-12-09T09:33:41+01:00</updated>
<published>2012-12-09T09:33:41+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1893&amp;p=20626#p20626</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1893&amp;p=20626#p20626"/>
<title type="html"><![CDATA[Re: TWI, Zapis EEPROM nie działa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1893&amp;p=20626#p20626"><![CDATA[
Wiem że mogę zapisać jeden element w tablicy i tak tez będę robił ale ja chciałem spróbować napisać swoja funkcję, to chyba nie grzech?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=288">Janadamis</a> — 9 gru 2012, o 09:33</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-12-09T00:32:37+01:00</updated>
<published>2012-12-09T00:32:37+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1893&amp;p=20611#p20611</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1893&amp;p=20611#p20611"/>
<title type="html"><![CDATA[Re: TWI, Zapis EEPROM nie działa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1893&amp;p=20611#p20611"><![CDATA[
<div class="quotetitle">Janadamis napisał(a):</div><div class="quotecontent"><br />Witam<br />Jako że w projekcie który robię potrzebny mi jest zapis danych do zewnętrznego eeproma to postanowiłem go okiełznać wraz z Icz. książki. Program Pana Mirka przerobiłem gdyż nie potrzebuje RTC. Program działa świetnie zapisuje tablice do eproma i ja potem czyta. Jednak ja potrzebuje zapisać tylko jedna zmienną naraz a nie tablicę do eproma tak więc postanowiłem napisać własną funkcje zapisującą zmienną do eproma.<br /></div><br /><br />No tak - jest takie przysłowie - &quot;nie miała baba kłopotu, to sobie go narobiła&quot; <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />powiedz mi pan - po kiego grzybka wpadł ci tak karkołomny pomysł do głowy ????<br /><br />skoro wszystko dobrze działa a ty potrzebujesz zapisać TYLKO JEDNĄ zmienną a nie całą tablicę zmiennych - to co za problem zapisać tablicę o jednym elemencie ???????????????? no i masz swoją zmienną ..... <br /><br />na prawdę strasznie ciężko mi nawet zabrać się za analizę tych fantasmagorii poniżej .....<br /><br />Powiedz mi czym się różni z punktu widzenia realizacji twojego celu<br /><br />jedna zmienna<br /><br />od <br /><br />tablicy jedno-elementowej<br /><br />hmmmm ? <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> — 9 gru 2012, o 00:32</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Janadamis]]></name></author>
<updated>2012-12-08T11:48:17+01:00</updated>
<published>2012-12-08T11:48:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1893&amp;p=20510#p20510</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1893&amp;p=20510#p20510"/>
<title type="html"><![CDATA[TWI, Zapis EEPROM nie działa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1893&amp;p=20510#p20510"><![CDATA[
Witam<br />Jako że w projekcie który robię potrzebny mi jest zapis danych do zewnętrznego eeproma to postanowiłem go okiełznać wraz z Icz. książki. Program Pana Mirka przerobiłem gdyż nie potrzebuje RTC. Program działa świetnie zapisuje tablice do eproma i ja potem czyta. Jednak ja potrzebuje zapisać tylko jedna zmienną naraz a nie tablicę do eproma tak więc postanowiłem napisać własną funkcje zapisującą zmienną do eproma.<br />Na początek napisałem ją w programie a nie w typie void. Użyłem do tego celu 2 atmeg 32 aby mieć 100% pewność że zapis i odczyt działa poprawnie. Program działał poprawnie, wiec postanowiłem umieścić te procedurę w typie void tak jak jest to umieszczone w programie z płyty. I tu pojawił się kłopot bo przestało chodzić. Nie wiem co zrobiłem źle i nie wiem czy przy zapisie jest kłopot czy przy odczycie. <br />Program jest napisany na jedna atmege32 zapis/odczyt <br />Ja użyłem pamięci eeprom 24C16 oraz sprzętowej obsługi I2C<br />Oto program<br />[syntax=c]<br />/*<br /> * main1.c<br /> *<br /> *  Created on: 2012-12-07<br /> *      Author: Janadamis<br /> */<br /><br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />#include &quot;LCD/lcd44780.h&quot;<br />#include &quot;I2C_TWI/i2c_twi.h&quot;<br /><br /><br /><br />#define _24C16_ADDR 0xA8//adres EEPROMU<br /><br /><br /><br />uint8_t tekst;<br />uint8_t bufor;<br /><br />// odczyt poszczególnych zmiennych z pamięci EEPROM<br />void ETWI_odczyt_uint8_t(uint8_t adresEE, uint16_t komorka, uint8_t liczba);<br />// zapis poszczególnych zmiennych z pamięci EEPROM<br />void ETWI_zapis_uint8_t(uint8_t adresEE, uint16_t komorka, uint8_t liczba);<br /><br />int main(void)<br />{<br />lcd_init();<br />i2cSetBitrate(100);<br /><br />tekst=124;<br /><br />while(1) {<br /><br />ETWI_zapis_uint8_t(_24C16_ADDR , 6 , tekst );//Zapisz liczbę do eprom<br />_delay_ms(10);<br /><br /><br />lcd_locate(0, 5);//wyświetl tą liczbę<br />lcd_int(tekst);<br /><br />_delay_ms(1000);<br />lcd_locate(0, 5);<br />lcd_str(&quot;Gotowe&quot;);<br /><br />ETWI_odczyt_uint8_t(_24C16_ADDR , 6 , bufor );//odczytaj liczbę z eprom<br /><br />_delay_ms(5);<br /><br />lcd_locate(0, 5);//Wyświetl odczytaną liczbę z eprom<br />lcd_int(bufor);<br /><br />_delay_ms(1000);<br />_delay_ms(1000);<br />}<br />}<br /><br />// odczyt poszczególnych zmiennych z pamięci EEPROM<br />void ETWI_odczyt_uint8_t(uint8_t adresEE, uint16_t komorka, uint8_t liczba)<br />{<br />TWI_start();<br />TWI_write(adresEE);<br />TWI_write(komorka);<br />TWI_start();<br />TWI_write(adresEE + 1);<br />liczba = TWI_read(NACK);<br />TWI_stop();<br /><br />}<br /><br />// zapis poszczególnych zmiennych z pamięci EEPROM<br />void ETWI_zapis_uint8_t(uint8_t adresEE, uint16_t komorka, uint8_t liczba)<br />{<br />TWI_start();<br />TWI_write(adresEE);<br />TWI_write(komorka);<br />TWI_write(liczba);<br />TWI_stop();<br />_delay_ms(5);<br />}<br />[/syntax]<br />Proszę o pomoc<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=288">Janadamis</a> — 8 gru 2012, o 11:48</p><hr />
]]></content>
</entry>
</feed>