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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2013-06-09T23:00:11+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=3298&amp;mode</id>
<entry>
<author><name><![CDATA[gomes]]></name></author>
<updated>2013-06-09T23:00:11+01:00</updated>
<published>2013-06-09T23:00:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3298&amp;p=38895#p38895</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3298&amp;p=38895#p38895"/>
<title type="html"><![CDATA[Re: Nie dziala zapis do PCF8583 z 08_TWI]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3298&amp;p=38895#p38895"><![CDATA[
Teraz wszystko jasne. Co do komunikacji udalo sie 'wpisac' godzine &gt; zaczelem debugowac na lcd i dodawanie w main i w petli nie dawalo rezultatu. Restartowalem uc, eclipse oczywiscie z zapisem i kolejne programowanie tego projektu nie pokazywalo zmian. Wtedy zaprogramowalem pownownie inny projekt z udp po czym wrocilem do tego w ktorym robilem zmiany i ruszylo od kopa (przestawila sie godzina na prawidlowa oraz byly widoczne flagi do debugowania).<br />Dziekuje ponownie za pomoc!<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=779">gomes</a> — 9 cze 2013, o 23:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-06-09T22:41:23+01:00</updated>
<published>2013-06-09T22:41:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3298&amp;p=38893#p38893</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3298&amp;p=38893#p38893"/>
<title type="html"><![CDATA[Re: Nie dziala zapis do PCF8583 z 08_TWI]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3298&amp;p=38893#p38893"><![CDATA[
<div class="quotetitle">gomes napisał(a):</div><div class="quotecontent"><br />W ksiazce nie znalazlem opisu tej funkcji - czy wartosc 100 dla bitrateKHz jest zalezna od taktowania (np jak bede chcial uc pognoc zewnetrznym kwarcem 16 Mhz to jaka wartosc bedzie mial bitrateKHz )?<br /></div><br /><br />w książce nie ma bo po prostu z rozpędu nie wiem jak ale całkowicie o niej zapomniałem.<br /><br />Prędkość w kHz jest zależna od urządzenia I2C a nie od tzw &quot;widzi-mi-się&quot; programisty <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> czyli trzeba zajrzeć do noty PDF i sprawdzić z jaką prędkością pracuje. Standardowa prędkość I2C to właśnie 100kHz i w zasadzie każdy scalak na niej będzie działać. Ale zdarzają się scalaki, które mają możliwość pracy np na 400kHz albo i szybciej - jak mówię trzeba zaglądać do PDF bo to podstawowa informacja przy scalakach I2C<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 9 cze 2013, o 22:41</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[gomes]]></name></author>
<updated>2013-06-09T22:24:02+01:00</updated>
<published>2013-06-09T22:24:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3298&amp;p=38892#p38892</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3298&amp;p=38892#p38892"/>
<title type="html"><![CDATA[Re: Nie dziala zapis do PCF8583 z 08_TWI]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3298&amp;p=38892#p38892"><![CDATA[
Tak, w main zaraz po zainicjalizowaniu lcd i przed wlaczeniem przerwan jest     i2cSetBitrate(100).<br />W ksiazce nie znalazlem opisu tej funkcji - czy wartosc 100 dla bitrateKHz jest zalezna od taktowania (np jak bede chcial uc pognoc zewnetrznym kwarcem 16 Mhz to jaka wartosc bedzie mial bitrateKHz )?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=779">gomes</a> — 9 cze 2013, o 22:24</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-06-09T22:09:40+01:00</updated>
<published>2013-06-09T22:09:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3298&amp;p=38887#p38887</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3298&amp;p=38887#p38887"/>
<title type="html"><![CDATA[Re: Nie dziala zapis do PCF8583 z 08_TWI]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3298&amp;p=38887#p38887"><![CDATA[
<div class="quotetitle">gomes napisał(a):</div><div class="quotecontent"><br />Predkosc i2c jest automatycznie przeliczana w fukcji ?<br /></div><br /><br />ale co to wg ciebie znaczy automatycznie ? toż trzeba podać jej argument<br /><br />i2cSetBitrate( 100 );<br /><br />podajesz tak czy nie ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 9 cze 2013, o 22:09</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[gomes]]></name></author>
<updated>2013-06-09T22:01:21+01:00</updated>
<published>2013-06-09T22:01:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3298&amp;p=38886#p38886</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3298&amp;p=38886#p38886"/>
<title type="html"><![CDATA[Re: Nie dziala zapis do PCF8583 z 08_TWI]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3298&amp;p=38886#p38886"><![CDATA[
<div class="quotetitle">Krauser napisał(a):</div><div class="quotecontent"><br />Jaką częstotliwością taktujesz mikrokontroler i jaką wartość wybrałeś jako MCU Clock Frequency. Jest to ważne bo na podstawie tej wybranej liczy obliczana jest prędkość I2C.<br /></div><br />Tak jak pisalem w pierwszym poscie 8 MHz i tak jest kompilowany. <br />Predkosc i2c jest automatycznie przeliczana w fukcji ?<br />[syntax=c]void i2cSetBitrate(uint16_t bitrateKHz) {<br />uint8_t bitrate_div;<br /><br />bitrate_div = ((F_CPU/1000l)/bitrateKHz);<br />if(bitrate_div &gt;= 16)<br />bitrate_div = (bitrate_div-16)/2;<br /><br />TWBR = bitrate_div;<br />}[/syntax]<br /><br />Tak wyglada kompilacja<br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">**** Build of configuration Release for project 08_TWI ****<br /><br />make all <br />Building file: ../main.c<br />Invoking: AVR Compiler<br />avr-gcc -Wall -Os -fpack-struct -fshort-enums -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega16 -DF_CPU=8000000UL -MMD -MP -MF&quot;main.d&quot; -MT&quot;main.d&quot; -c -o&quot;main.o&quot; &quot;../main.c&quot;<br />Finished building: ../main.c<br /> <br />Building target: 08_TWI.elf<br />Invoking: AVR C Linker<br />avr-gcc -Wl,-Map,08_TWI.map -mmcu=atmega16 -o&quot;08_TWI.elf&quot;  ./main.o  ./LCD/lcd44780.o  ./I2C_TWI/i2c_twi.o   <br />Finished building target: 08_TWI.elf<br /> <br />Invoking: Print Size<br />avr-size --format=avr --mcu=atmega16 08_TWI.elf<br />AVR Memory Usage<br />----------------<br />Device: atmega16<br /><br />Program:    1676 bytes (10.2% Full)<br />(.text + .data + .bootloader)<br /><br />Data:          6 bytes (0.6% Full)<br />(.data + .bss + .noinit)<br /><br /><br />Finished building: sizedummy</div><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=779">gomes</a> — 9 cze 2013, o 22:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2013-06-09T21:52:06+01:00</updated>
<published>2013-06-09T21:52:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3298&amp;p=38885#p38885</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3298&amp;p=38885#p38885"/>
<title type="html"><![CDATA[Re: Nie dziala zapis do PCF8583 z 08_TWI]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3298&amp;p=38885#p38885"><![CDATA[
Jaką częstotliwością taktujesz mikrokontroler i jaką wartość wybrałeś jako MCU Clock Frequency. Jest to ważne bo na podstawie tej wybranej liczy obliczana jest prędkość I2C.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 9 cze 2013, o 21:52</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-06-09T21:50:15+01:00</updated>
<published>2013-06-09T21:50:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3298&amp;p=38884#p38884</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3298&amp;p=38884#p38884"/>
<title type="html"><![CDATA[Re: Nie dziala zapis do PCF8583 z 08_TWI]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3298&amp;p=38884#p38884"><![CDATA[
no no rozumiem - generalnie to dobrze <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> jest ładnie podtrzymywany i widać że komunikacja działa dobrze - w takim razie nie mam pomysłu na gorąco co jest nie tak - na pewno jakiś czeski błąd .... <br /><br />na ile kHz ustawiłeś prędkość I2C ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 9 cze 2013, o 21:50</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[gomes]]></name></author>
<updated>2013-06-09T21:45:14+01:00</updated>
<published>2013-06-09T21:45:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3298&amp;p=38883#p38883</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3298&amp;p=38883#p38883"/>
<title type="html"><![CDATA[Re: Nie dziala zapis do PCF8583 z 08_TWI]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3298&amp;p=38883#p38883"><![CDATA[
Po kazdej kompilacji czas leci dalej (obecnie 04:28:00) bo mam podlaczona dodatkowa baterje do podtrzymania czasu. Pewnie jak bym ja wylutowal to po kazdym zaniku zasilania badz kolejnym programowaniu czas startowalby od 0:0:0. <br /><br />Projekt oczywiscie zapisuje, eclipse tez byl restartowany.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=779">gomes</a> — 9 cze 2013, o 21:45</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-06-09T21:37:53+01:00</updated>
<published>2013-06-09T21:37:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3298&amp;p=38882#p38882</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3298&amp;p=38882#p38882"/>
<title type="html"><![CDATA[Re: Nie dziala zapis do PCF8583 z 08_TWI]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3298&amp;p=38882#p38882"><![CDATA[
No to rzeczywiście źle zrozumiałem - za szybko przeczytałem <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> przepraszam - tak to jest jak robię 190 rzeczy na raz ... sorki<br /><br />hmmm skoro czas leci czyli wszystko ślicznie działa - odczyt , adres się zgadza - no miodzio ... a nie działa tylko zapis ? ... to bardzo dziwne<br /><br />ale teraz żebym dobrze zrozumiał - czyli od jakiej godziny ci ten czas zlicza ? od 00:00:00 ? i cały czas płynie ? czy po każdym restarcie od zera ?<br /><br />a może nie zapisujesz projektu przed kompilacją ? <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 cze 2013, o 21:37</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[gomes]]></name></author>
<updated>2013-06-09T21:27:02+01:00</updated>
<published>2013-06-09T21:27:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3298&amp;p=38880#p38880</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3298&amp;p=38880#p38880"/>
<title type="html"><![CDATA[Re: Nie dziala zapis do PCF8583 z 08_TWI]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3298&amp;p=38880#p38880"><![CDATA[
<div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br /><div class="quotetitle">gomes napisał(a):</div><div class="quotecontent">Schemat w tym temacie<br /></div><br /><br />o jo joj, <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> no to nad schematem to musisz jeszcze troszkę popracować <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> ale ok ... coś tam widać - no rezystory SDA i SCL masz, ale jakiesik takie za małe 1K ? (daj 4,7K) minimum ... chociaż i z tymi co masz powinno działać<br /><br />ale sprawdź przede wszystkim najpierw czy tyka ci RTC czyli podepnij do wyjścia INT diodę LED przez rezystor oczywiście do VCC</div><br /><br />Kolega widze nie zrozumial problemu. Przerwanie dziala poprawnie tzn co 1sek wyswietlacz jest odswiezany, komunikacja odczytu z rtc przebiega poprawnie i na wyswietlaczu jest wywietlany aktualny czas z rtc (obecnie 04:09:20 bo tyle sie z tym bawie) i co sec jest incrementowany  <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> .<br />Problem jak pisalem jest z ustawianiem godziny w pcf. Po wywolaniu tej <br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">TWI_write_buf( PCF8583_ADDR, 0x01, 4, bufor )</div><br />funkcji w main jak dobrze zrozumialem z ksiazki powina zostac zainicjalizowana godzina 18:34:27 (po zaprogramowaniu badz zrestartowaniu uc)  a tak sie nie dzieje tylko czas leci 'dalej' taki jak byl bo jest podtrzymanie bateryjne.<br /><br />W pliku i2c_twi.c posiadam funkcje i2cSetBitrate wiec errata zastosowana.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=779">gomes</a> — 9 cze 2013, o 21:27</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-06-09T21:21:18+01:00</updated>
<published>2013-06-09T21:21:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3298&amp;p=38879#p38879</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3298&amp;p=38879#p38879"/>
<title type="html"><![CDATA[Re: Nie dziala zapis do PCF8583 z 08_TWI]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3298&amp;p=38879#p38879"><![CDATA[
<div class="quotetitle">gomes napisał(a):</div><div class="quotecontent"><br />Schemat w tym temacie<br /></div><br /><br />o jo joj, <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> no to nad schematem to musisz jeszcze troszkę popracować <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> ale ok ... coś tam widać - no rezystory SDA i SCL masz, ale jakiesik takie za małe 1K ? (daj 4,7K) minimum ... chociaż i z tymi co masz powinno działać<br /><br />ale sprawdź przede wszystkim najpierw czy tyka ci RTC czyli podepnij do wyjścia INT diodę LED przez rezystor oczywiście do VCC<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 9 cze 2013, o 21:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2013-06-09T21:15:05+01:00</updated>
<published>2013-06-09T21:15:05+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3298&amp;p=38878#p38878</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3298&amp;p=38878#p38878"/>
<title type="html"><![CDATA[Re: Nie dziala zapis do PCF8583 z 08_TWI]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3298&amp;p=38878#p38878"><![CDATA[
A ja z rozpędu pomyślałem o ATB. Jak sam coś robisz to właśnie masz dobre odniesienie w postaci sprawdzonego schematu.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 9 cze 2013, o 21:15</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[gomes]]></name></author>
<updated>2013-06-09T21:13:15+01:00</updated>
<published>2013-06-09T21:13:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3298&amp;p=38875#p38875</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3298&amp;p=38875#p38875"/>
<title type="html"><![CDATA[Re: Nie dziala zapis do PCF8583 z 08_TWI]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3298&amp;p=38875#p38875"><![CDATA[
<div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />No tak a schemat ? jak masz to podłączone ? szczególnie linie SDA i SCL ?<br /></div><br />Kolego, zapomnialem wspomniec, ze korzystam z wlasnego pcb i sprzetowej komunikacji i2c oraz nie mam podlaczonego EEPROMu.<br />Schemat w tym temacie <br /><a href="http://forum.atnel.pl/topic3116.html"  class="postlink">http://forum.atnel.pl/topic3116.html</a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=779">gomes</a> — 9 cze 2013, o 21:13</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-06-09T21:08:03+01:00</updated>
<published>2013-06-09T21:08:03+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3298&amp;p=38874#p38874</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3298&amp;p=38874#p38874"/>
<title type="html"><![CDATA[Re: Nie dziala zapis do PCF8583 z 08_TWI]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3298&amp;p=38874#p38874"><![CDATA[
No tak a schemat ? jak masz to podłączone ? szczególnie linie SDA i SCL ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 9 cze 2013, o 21:08</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2013-06-09T21:06:49+01:00</updated>
<published>2013-06-09T21:06:49+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3298&amp;p=38873#p38873</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3298&amp;p=38873#p38873"/>
<title type="html"><![CDATA[Re: Nie dziala zapis do PCF8583 z 08_TWI]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3298&amp;p=38873#p38873"><![CDATA[
RTC nie może mieć zmienionego adresu (pozostań przy 0xA2) tylko EEPROM. Przejrzyj uważnie schemat <!-- m --><a class="postlink" href="http://www.atnel.pl/instrukcja-atb-rev-1-04.html" >http://www.atnel.pl/instrukcja-atb-rev-1-04.html</a><!-- m --><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 9 cze 2013, o 21:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[gomes]]></name></author>
<updated>2013-06-09T20:41:26+01:00</updated>
<published>2013-06-09T20:41:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3298&amp;p=38871#p38871</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3298&amp;p=38871#p38871"/>
<title type="html"><![CDATA[Nie dziala zapis do PCF8583 z 08_TWI]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3298&amp;p=38871#p38871"><![CDATA[
Przerabiam komunikacje I2C z niebieskiej ksiazki i nie dziala mi funkcja zapisu godziny do PCF8583<br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">TWI_write_buf( PCF8583_ADDR, 0x01, 4, bufor )</div> Na wyswietlaczu pojawia sie w pierwszej lini start... a w drugiej leci czas od 0:0:0. Korzystam z atmegi16 taktowanej 8 Mhz, przerwanie z rtc podlaczone do  INT1, A0 podlaczone do GND stad <br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">#define PCF8583_ADDR 0xA0</div><br />Przeczytalem dwa razy rozdzial w ksiazce ale nie moge doszukac sie bledu. Zadnych  modyfikacji w i2c_twi nie dokonywalem. <br />Czy ktos ma pomysl dlaczego po zaprogramowaniu czas nie startuje od 18:34:27 ?<br /><br />Ponizej kod main'a<br />[syntax=c]&#91;code&#93;<br />/*<br /> * main.c<br /> *<br /> *  Created on: 2010-09-07<br /> *       Autor: Mirosław Kardaś<br /> *<br /> *       Program korzysta ze sprzętowej obsługi I2C/TWI<br /> *       Umożliwia zapis danych do RTC oraz EEPROM a także<br /> *       oczyt z tych urządzeń<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 />#define PCF8583_ADDR 0xA0<br /><br />//#define _24C04_ADDR 0xA8<br /><br />// utworzenie typu u08, odpowiednika uint8_t aby kod był bardziej czytelny<br />typedef unsigned char  u08;<br />typedef unsigned short u16;<br /><br /><br /><br />uint8_t tekst&#91;&#93; = &quot;EEPROM&quot;;<br /><br />uint8_t bo&#91; sizeof(tekst)+1 &#93;; // bufor pomocniczy na odczyt z EEPROM<br /><br />volatile uint8_t int0_flag=1;// flaga zmieniana w przerwaniu i sprawdzana w pętli głównej<br /><br />// konwersja liczby dziesiętnej na BCD<br />uint8_t dec2bcd(uint8_t dec);<br />// konwersja liczby BCD na dziesiętną<br />uint8_t bcd2dec(uint8_t bcd);<br /><br />// odczyt danych z pamięci EEPROM<br />//void EI2C_read_buf(u08 device, u16 subAddr, u16 len, u08 *buf);<br />// zapis danych do pamięci EEPROM<br />//void EI2C_write_buf(u08 device, u16 subAddr, u16 len, u08 *buf);<br /><br />int main(void) {<br /><br /><br />DDRA |= (1&lt;&lt;PA0);<br />PORTA |= (1&lt;&lt;PA0); // podświetlenie wyświetlacza LCD<br /><br /><br />// Przerwanie INT1<br />MCUCR |= (1&lt;&lt;ISC11);// wyzwalanie zboczem opadającym<br />GICR |= (1&lt;&lt;INT1);// odblokowanie przerwania<br />PORTD |= (1&lt;&lt;PD3);// podciągnięcie pinu INT1 do VCC<br /><br /><br />// definiujemy sobie dla polepszenia czytelności programu typ wyliczeniowy<br />// wskazujący nam później na odpowiednie indeksy w tablicy (buforze)<br />enum {ss=1, mm, hh};<br />uint8_t bufor&#91;4&#93;;// rezerwacja bufora 4 bajty<br />uint8_t sekundy, minuty, godziny;<br /><br /><br />lcd_init();<br /><br />i2cSetBitrate(100);<br /><br />sei();<br /><br />lcd_str_P(PSTR(&quot;start...&quot;));<br /><br />// Ustawianie czasu na godzinę: 18:34:27<br /><br />bufor&#91;0&#93; = 0;// setne części sekundy<br />bufor&#91;1&#93; = dec2bcd(27);// sekundy<br />bufor&#91;2&#93; = dec2bcd(34);// minuty<br />bufor&#91;3&#93; = dec2bcd(18);// godziny<br />// zapis 4 bajtów z bufora pod adres 0x01 w pamięci RAM naszego RTC<br />TWI_write_buf( PCF8583_ADDR, 0x01, 4, bufor );<br /><br /><br />// zapis tekstu do pamięci EEPROM od adresu 253, dlatego aby tekst<br />// został zapisany w jednym i drugim banku pamięci<br />//EI2C_write_buf( _24C04_ADDR, 253, sizeof(tekst), tekst );<br /><br />while(1) {<br /><br />//_delay_ms(100);<br /><br />if ( int0_flag ) {<br />//odczyt 4 bajtów do bufora od adresu 0x01 z pamięci RAM naszego RTC<br />TWI_read_buf( PCF8583_ADDR, 0x01, 4, bufor );<br /><br />sekundy = bcd2dec( bufor&#91;ss&#93; );<br />minuty = bcd2dec( bufor&#91;mm&#93; );<br />godziny = bcd2dec( bufor&#91;hh&#93; );<br /><br />// wyświetlenie czasu na LCD<br />lcd_locate(1,0);<br />if( godziny &lt; 10 ) lcd_str(&quot;0&quot;);<br />lcd_int(godziny);<br />lcd_str(&quot;:&quot;);<br />if( minuty &lt; 10 ) lcd_str(&quot;0&quot;);<br />lcd_int(minuty);<br />lcd_str(&quot;:&quot;);<br />if( sekundy &lt; 10 ) lcd_str(&quot;0&quot;);<br />lcd_int(sekundy);<br /><br />// odczyt z EEPROM<br />//EI2C_read_buf( _24C04_ADDR, 253, sizeof(tekst), bo );<br /><br />// wyświetlenie napisu z EEPROM na LCD<br />//lcd_locate(0, 9);<br />//lcd_str( (char*)bo );<br /><br />int0_flag=0;<br />}<br /><br />}<br />}<br /><br /><br />//procedura obsługi przerwania INT 0<br />ISR( INT1_vect ) {<br /><br />int0_flag = 1;<br />}<br /><br /><br />// konwersja liczby dziesiętnej na BCD<br />uint8_t dec2bcd(uint8_t dec) {<br />return ((dec / 10)&lt;&lt;4) | (dec % 10);<br />}<br /><br />// konwersja liczby BCD na dziesiętną<br />uint8_t bcd2dec(uint8_t bcd) {<br />    return ((((bcd) &gt;&gt; 4) &amp; 0x0F) * 10) + ((bcd) &amp; 0x0F);<br />}<br /><br /><br />// odczyt danych z pamięci EEPROM<br />void EI2C_read_buf(u08 device, u16 subAddr, u16 len, u08 *buf) {<br /><br />while (len--) {<br />TWI_start();<br />TWI_write(device | ((subAddr&gt;&gt;8)&lt;&lt;1) );<br />TWI_write(subAddr);<br />TWI_start();<br />TWI_write(device + 1);<br />*buf++ = TWI_read( NACK );<br />TWI_stop();<br />subAddr++;<br />}<br /><br /><br />}<br /><br />// zapis danych do pamięci EEPROM<br />void EI2C_write_buf(u08 device, u16 subAddr, u16 len, u08 *buf) {<br /><br />while (len--) {<br />TWI_start();<br />// ustawienie 9 bitu adresu pamięci EEPROM w ramach<br />// sprzętowego adresu urządzenia na pozycji bitu 1 (nr.2)<br />TWI_write( device | ((subAddr&gt;&gt;8)&lt;&lt;1) );<br />TWI_write(subAddr);<br /><br />TWI_write(*buf++);<br /><br />TWI_stop();<br />_delay_ms(5); // oczekiwanie na zapis<br />subAddr++;<br />}<br />}<br /><br />&#91;/code&#93;[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=779">gomes</a> — 9 cze 2013, o 20:41</p><hr />
]]></content>
</entry>
</feed>