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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2017-12-11T00:17:17+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=11499&amp;mode</id>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2017-12-11T00:17:17+01:00</updated>
<published>2017-12-11T00:17:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11499&amp;p=200335#p200335</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11499&amp;p=200335#p200335"/>
<title type="html"><![CDATA[Re: DS1307 problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11499&amp;p=200335#p200335"><![CDATA[
<div class="quotetitle">miksior napisał(a):</div><div class="quotecontent"><br />Witam, podepne sie do tematu,<br /></div><br />Jakby tak się wszyscy podpinali do jednego wątku to forum miałoby jeden GIGA WĄTEK. Znalazłbyś wtedy coś na takim forum? Toż to kompletnie bez sensu i zaprzeczenie idei forum. &quot;podpinanie się&quot; do jakichś archeologicznych wątków, totalny nonsens<br /><br />wątek blokuję i liczę, że kolega zrozumie co znaczy forum i jak się działa - jak się ma pytanie to się ZAKŁADA nowy wątek<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 11 gru 2017, o 00:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Harry]]></name></author>
<updated>2017-12-11T00:17:17+01:00</updated>
<published>2017-12-11T00:15:20+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11499&amp;p=200334#p200334</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11499&amp;p=200334#p200334"/>
<title type="html"><![CDATA[Re: DS1307 problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11499&amp;p=200334#p200334"><![CDATA[
Mirek, zamknij hurtem wszystkie stare tematy, bo w tym tempie za pół roku będzie jeden wielki b***(no ten co go mają w Archeo)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14685">Harry</a> — 11 gru 2017, o 00:15</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[miksior]]></name></author>
<updated>2017-12-11T00:05:20+01:00</updated>
<published>2017-12-11T00:05:20+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11499&amp;p=200333#p200333</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11499&amp;p=200333#p200333"/>
<title type="html"><![CDATA[Re: DS1307 problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11499&amp;p=200333#p200333"><![CDATA[
Witam, podepne sie do tematu, gdyz juz jakis czas walcze z rtc ds 1307 i nie moge sobie poradzic... pobralem biblioteke kolegi wat1970 (dla którego pozdrowienia i dzieki za wstawienie) probowalem juz kilku bibliotek i jest klapa, moze ktos bedzie w stanie naprowadzic mnie na wlasciwe tory... procek atmega8, taktowany 8 MHz, juz sam nie wiem co jest nie tak, napewno program wysypuje sie w momencie wywolania funkcji TWI_read_buff (zapalam diode tuz po wywolaniu funkcji - nie dziala, gdy wyrzuce ta linijke dioda sie normalnie zapala).<br />oto okrojony kod od wat1970<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &quot;I2C_TWI/i2c_twi.h&quot;<br /><br /><br />//RTC<br />#define DS1307_ADDR 0xD0<br /><br />uint8_t bufor&#91;8&#93;;<br />enum dzien {nie = 1, pon, wto, sro, czw , pia , sob } ;<br />uint8_t sekundy = 0, minuty;<br />uint8_t dec2bcd(uint8_t dec) ; // dec ---&gt; bcd<br />uint8_t bcd2dec(uint8_t bcd) ; // bcd --&gt; dec<br /><br />void ustaw_czas(uint8_t mm , uint8_t hh, uint8_t dt, uint8_t dd, uint8_t month, uint8_t year) ; // deklaracja funkcji do ustawiania czasu<br />int main(){<br />i2cSetBitrate(100);    // częstotliwość SCL 100 kHz na potrzeby I2C<br />DDRB |=  (1&lt;&lt;PB1) ;<br />bufor&#91;7&#93; = ((0&lt;&lt;0) | (0&lt;&lt;1)) ;<br />TWI_write_buf( DS1307_ADDR, 0x07, 1, bufor+7 );<br /><br />// minuta, godzina, dzień tygodnia (1 niedziela, 2 pon, 3 wtorek , 4 środa, 5 czwartek, 6 piątek , 7 sobota),dzień, miesiąc,rok<br />// za pomocą typu enum (patrz zmienna dzien) używamy skróconych nazw tygodnia zamiast powyższych cyfr<br />ustaw_czas(13,1,wto,8,4,14); // po wgraniu czasu dezaktywować i wgrać wsad jeszcze raz tak aby po odłaczeniu zasilania nie ustawiał czasu<br />_delay_ms(10);<br />while (1){<br />TWI_read_buf( DS1307_ADDR, 0x00, 1, bufor );<br />sekundy = bcd2dec( bufor&#91;0&#93; );<br />//minuty = bcd2dec( bufor&#91;1&#93; );<br />// TUTAJ PRORAM SIE WYSYPUJE, WSTAWILEM TA DIODE ZEBY SPRAWDZIC CZY SIE WYKONUJE, jesli kasuje linijke wyzej wywolujaca funkcje TWI_read_buf to program sie wykonuje<br />PORTB |=  (1&lt;&lt;PB1);<br />}<br /><br />}<br />uint8_t dec2bcd(uint8_t dec) {<br />return ((dec / 10)&lt;&lt;4) | (dec % 10);<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 />void ustaw_czas(uint8_t mm , uint8_t hh, uint8_t dt, uint8_t dd, uint8_t month, uint8_t year)<br /> {<br />  bufor&#91;0&#93; = dec2bcd(00);// sekundy.<br />bufor&#91;1&#93; = dec2bcd(mm);// minuty.<br />bufor&#91;2&#93; = dec2bcd(hh);// godziny<br />bufor&#91;3&#93; = dec2bcd(dt);// dzień tygodnia (1 niedziela, 2 pon, 3 wtorek , 4 środa, 5 czwartek, 6 piątek , 7 sobota itp)<br />bufor&#91;4&#93; = dec2bcd(dd);// dzień<br />bufor&#91;5&#93; = dec2bcd(month);// miesiąc<br />bufor&#91;6&#93; = dec2bcd(year);// rok<br />//bufor&#91;7&#93; = dec2bcd(90);// bajt konfiguracyjny ustawienie bajtu konfiguracyjnego , uaktywnienie wyjścia z 1 Hz, ustawienie bitu SQWE i OUT na 1 i bitów RS1 i RS0 na 0<br />//bajt konfiguracyjny ((0&lt;&lt;0) | (0&lt;&lt;1) | (1&lt;&lt;4) | (1&lt;&lt;7) ; czyli w BCD 10010000 co daje DEC 90<br />bufor&#91;7&#93; = ((0&lt;&lt;0) | (0&lt;&lt;1)) ; // inna metoda na ustawienie bajtu konfiguracyjnego<br /><br />// zapis 8 bajtów z bufora zaczynając od adresu 0x00 w pamięci RAM  RTC 1307<br />TWI_write_buf( DS1307_ADDR, 0x00, 8, bufor );<br /> }[/syntax]<br />Pozdrawiam<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=16029">miksior</a> — 11 gru 2017, o 00:05</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jarecki]]></name></author>
<updated>2015-05-01T20:47:40+01:00</updated>
<published>2015-05-01T20:47:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11499&amp;p=128021#p128021</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11499&amp;p=128021#p128021"/>
<title type="html"><![CDATA[Re: DS1307 problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11499&amp;p=128021#p128021"><![CDATA[
Kod kolegi wat1970 bardzo pomógł, wszystko śmiga aż miło, bardzo dziękuję wszystkim 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=2511">Jarecki</a> — 1 maja 2015, o 20:47</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wat1970]]></name></author>
<updated>2015-05-01T11:31:42+01:00</updated>
<published>2015-05-01T11:31:42+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11499&amp;p=127941#p127941</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11499&amp;p=127941#p127941"/>
<title type="html"><![CDATA[Re: DS1307 problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11499&amp;p=127941#p127941"><![CDATA[
Witam<br /><br />DS1307 to bardzo fajny prosty i wdzięczny układzik. Nie ma może zabójczej dokładności ale serce moje podbił od pierwszego taktu kwarcowego <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />W załączniku mój projekt w którym połączyłem odczyt czasu (DS1307) i temperatury (DS18B20) i wyświetlania tego na wyświetlaczach LED sterowanych fajnym układem MAX7219. Płytkę z MAX7219 zakupiłem w AVT a płytkę z resztą komponentów zrobiłem  własnymi ręcami <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />Zestaw ten robiłem dla synka pod choinkę <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />, projekt ma zatem wymiar sentymentalny.<br />Zegarek ma zaimplementowane ustawianie czasu za pomocą trzech przycisków i automatyczne sterowanie jasnością świecenia . Generalnie to był mój pierwszy projekt po rozpoczęciu przygody z AVR-emi.<br />Powstanie projektu zawdzięczam wiedzy wydobytej z BB Mirka i pomocy SunRivera w krytycznym momencie pisania kodu.<br /><br />Kod dla Atmegi8 z kwarcem 16 MHz, nie jest może najlepszej jakości <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> ale zważywszy na to , że to był mój pierwszy projekt z AVR-em to proszę o wybaczenie <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Plik jest projektem gotowym do Eclipsa Indygo.<br />Wszytko działa bez zająknięcia i daje dużo radości <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Teraz już takich zegarków nie robią <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />Pozdrawiam<br />wat1970<br /><br />MAX7219_RTC_DS1307_DS18B20_Moje_BCD_bez_750ms_Testy.zip<br /><br /><br /><a href="http://forum.atnel.pl/_obrazki/o/2179/cada3252b1fc5a22c39967b990e9775d.JPG"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/2179/cada3252b1fc5a22c39967b990e9775d.JPG" alt="Obrazek" /></a><a href="http://forum.atnel.pl/_obrazki/o/2179/827b8811bcfa364c2a34ad147769df40.JPG"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/2179/827b8811bcfa364c2a34ad147769df40.JPG" alt="Obrazek" /></a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2179">wat1970</a> — 1 maja 2015, o 11:31</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jarecki]]></name></author>
<updated>2015-04-29T19:35:31+01:00</updated>
<published>2015-04-29T19:35:31+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11499&amp;p=127779#p127779</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11499&amp;p=127779#p127779"/>
<title type="html"><![CDATA[DS1307]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11499&amp;p=127779#p127779"><![CDATA[
Witam, Koledzy czy któryś z Was mógłby podzielić się działającym kodem z bibliotekami z BB (biblioteki mam z płyty DVD) dla zegara RTC DS1307? w BB kod jest dla układu PCF...Od kilku dni walczę z DS1307 bo niby zgłasza przerwania co sekundę ale odczytane wartości sekund, minut i godzin stoją w miejscu :/ nie wiem co robię źle. Już zamówiłem nowy układ nawet bo może ten jest uszkodzony....Będę wdzięczny za pomoc<br />Pozdrawiam<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2511">Jarecki</a> — 29 kwi 2015, o 19:35</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jarecki]]></name></author>
<updated>2015-04-27T19:11:49+01:00</updated>
<published>2015-04-27T19:11:49+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11499&amp;p=127624#p127624</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11499&amp;p=127624#p127624"/>
<title type="html"><![CDATA[Re: DS1307 problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11499&amp;p=127624#p127624"><![CDATA[
Witam, po aktualizacji kodu do TWI ze strony Atnel układ ruszył ale nie działa dalej poprawnie. Co 1s jest zgłaszane przerwanie a na wyświetlaczu mam cały czas godzinę 1:06:03  <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" />  Co moze być jeszcze nie tak?<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 53 minutyach ]</span></strong><br /><br />Macie koledzy jakiś pomysł jak popchnąc ten układ żeby ruszył?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2511">Jarecki</a> — 27 kwi 2015, o 19:11</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jarecki]]></name></author>
<updated>2015-04-26T22:42:18+01:00</updated>
<published>2015-04-26T22:42:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11499&amp;p=127565#p127565</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11499&amp;p=127565#p127565"/>
<title type="html"><![CDATA[Re: DS1307 problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11499&amp;p=127565#p127565"><![CDATA[
[syntax=c]#define DP_PIN (1&lt;&lt;PB0)<br />#define DP_TOG PORTB ^= DP_PIN[/syntax]<br />Do DS1307 nie mam podłączonej baterii. Może to jest błąd?<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 1 minucie ]</span></strong><br /><br />Kierunek portu B ustawiony na wyjscie oczywiście DDRB=255<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2511">Jarecki</a> — 26 kwi 2015, o 22:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jarecki]]></name></author>
<updated>2015-04-26T22:27:36+01:00</updated>
<published>2015-04-26T22:27:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11499&amp;p=127560#p127560</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11499&amp;p=127560#p127560"/>
<title type="html"><![CDATA[Re: DS1307 problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11499&amp;p=127560#p127560"><![CDATA[
[syntax=c]uint8_t ctrl = 0x10; //Rejstr kontrolny, ustawiamy cześtotliwośc oscylatora etc. (u nas 1Hz)<br />            TWI_write_buf( DS1307_ADDR, 0x07, 1, &amp;ctrl );  //Adres DS1307 0xD0  07<br />            uint8_t CH = 0; //ustawienie bitu 7 w rejstrze o adresie 0x00 na 0 odblokowuje oscylator<br />            TWI_write_buf(DS1307_ADDR, 0, 1, &amp;CH);[/syntax]<br /><br />Wydaje mi się że w tej funkcji init to jest co piszesz <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=2511">Jarecki</a> — 26 kwi 2015, o 22:27</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jarecki]]></name></author>
<updated>2015-04-26T22:05:05+01:00</updated>
<published>2015-04-26T22:05:05+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11499&amp;p=127557#p127557</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11499&amp;p=127557#p127557"/>
<title type="html"><![CDATA[Re: DS1307 problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11499&amp;p=127557#p127557"><![CDATA[
<div class="quotetitle">bogdanc napisał(a):</div><div class="quotecontent"><br />Czy to jest pełny kod?<br /><br />Brakuje np: [syntax=c]i2cSetBitrate( 100 )[/syntax]<br /><br />Niewspominając o:<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;[/syntax]<br /></div> <br />Oczywiście że te biblioteki są dołączone. Linie SDA i SCL pociągnięte do zasilania przez rezystory. Dodatkowo do ukąłdu dołączony jest czujnik temperatury DS18B20 na 1-wire i działa bez zarzutu. Czytałem Twoje wątki na temat DS1307 bo w wielu się wypowiadałeś i nie wiem dlaczego ale jak użyję <br /> [syntax=c]i2cSetBitrate( 100 )[/syntax]<br />to jest błąd. Jaką bibliotekę trzeba dołączyć żeby ta funkcja działała? Programy piszę w eclipse<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 2 minutach ]</span></strong><br /><br /><div class="quotetitle">Antystatyczny napisał(a):</div><div class="quotecontent"><br />Nie działa, bo  trzeba włączyć ten zegarek... Przede wszystkim zerknij na najstarszy bit rejestru pod adresem 0x00.  Bit nazywa się bodajże  CH, piszę z pamięci. Sprawdź również resztę rejestrów, bo  pin 7  chyba także należy ręcznie uaktywnić.<br /><br />Pozdrawiam<br /></div><br />A możesz powiedzieć dokładnie jak to zrobić kolego? Może masz jakiś sprawdzony kod?<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 3 minutach ]</span></strong><br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;avr/eeprom.h&gt;<br />#include &lt;avr/wdt.h&gt;<br />#include &quot;1Wire/ds18x20.h&quot;<br />#include &quot;I2C_TWI/i2c_twi.h&quot;<br />#include &lt;stdlib.h&gt;[/syntax]<br />Takie biblioteki mam dołączone<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 6 minutach ]</span></strong><br /><br />undefined reference to `i2cSetBitrate' taki jest ten błąd<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2511">Jarecki</a> — 26 kwi 2015, o 22:05</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[bogdanc]]></name></author>
<updated>2015-04-26T18:27:16+01:00</updated>
<published>2015-04-26T18:27:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11499&amp;p=127531#p127531</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11499&amp;p=127531#p127531"/>
<title type="html"><![CDATA[Re: DS1307 problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11499&amp;p=127531#p127531"><![CDATA[
Czy to jest pełny kod?<br /><br />Brakuje np: [syntax=c]i2cSetBitrate( 100 )[/syntax]<br /><br />Niewspominając o:<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1319">bogdanc</a> — 26 kwi 2015, o 18:27</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jarecki]]></name></author>
<updated>2015-04-26T14:11:19+01:00</updated>
<published>2015-04-26T14:11:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11499&amp;p=127515#p127515</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11499&amp;p=127515#p127515"/>
<title type="html"><![CDATA[DS1307 problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11499&amp;p=127515#p127515"><![CDATA[
Witam, zbudowałem zegarek na mikrokontrolerze Atmega16 i układzie DS1307. Uzywam sprzętowego układu TWI<br />oraz przerwania INT1 z pinu PD3. DS1307 niestety nie generuje przerwań. Możecie jakoś pomóc koledzy? Biblioteki są z BB.<br />[syntax=c]#include &quot;I2C_TWI/i2c_twi.h&quot;<br /><br />volatile uint8_t int1_flag=1; // flaga zmieniana w przerwaniu i sprawdzana w pętli głównej<br />#define DS1307_ADDR 0xD0<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 />void DS1307_init( void ); //deklaracja inicjalizacji Zegara RTC<br /><br />int main(void){<br />DDRD&amp;=~((1&lt;&lt;PD3));<br />PORTD|=(1&lt;&lt;PD3);<br /><br />MCUCR |= (1&lt;&lt;ISC11);// wyzwalanie zboczem opadającym<br />GICR |= (1&lt;&lt;INT1);// odblokowanie przerwania<br /><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 />sei();<br />DS1307_init();<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( DS1307_ADDR, 0x00, 4, bufor );<br />while(1){<br />if ( int1_flag ) {<br />//odczyt 4 bajtów do bufora od adresu 0x01 z pamięci RAM naszego RTC<br />TWI_read_buf( DS1307_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 />wys_sekundy(sekundy);<br />wys_minuty(minuty);<br />wys_godziny(godziny);<br /><br />int1_flag=0;<br />}<br />}<br />}<br />ISR( INT1_vect ) {<br />DP_TOG;             //Powinna co 1s migać dioda<br />int1_flag = 1;<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 />void DS1307_init( void ){<br />            uint8_t ctrl = 0x10; //Rejstr kontrolny, ustawiamy cześtotliwośc oscylatora etc. (u nas 1Hz)<br />            TWI_write_buf( DS1307_ADDR, 0x07, 1, &amp;ctrl );  //Adres DS1307 0xD0  07<br />            uint8_t CH = 0; //ustawienie bitu 7 w rejstrze o adresie 0x00 na 0 odblokowuje oscylator<br />            TWI_write_buf(DS1307_ADDR, 0, 1, &amp;CH);<br />    }[/syntax] <br />Nie mam pojęcia czemu to nie działa. Będę wdzięczny za każdą pomoc<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2511">Jarecki</a> — 26 kwi 2015, o 14:11</p><hr />
]]></content>
</entry>
</feed>