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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-08-24T16:09:41+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=12726&amp;mode</id>
<entry>
<author><name><![CDATA[anshar]]></name></author>
<updated>2015-08-24T16:09:41+01:00</updated>
<published>2015-08-24T16:09:41+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12726&amp;p=138226#p138226</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12726&amp;p=138226#p138226"/>
<title type="html"><![CDATA[Re: ATmega8A - TWI i LCD, wyświetlacz nic nie pokazuje]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12726&amp;p=138226#p138226"><![CDATA[
Jeśli masz DS1307 to przecież łatwo możesz przerobić ten przykład z BB odnośnie PCF8583.<br /><br />Zobaczacz <a href="http://forum.atnel.pl/post110734.html?hilit=1307#p110734"  class="postlink">ten</a> wątek.  <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> <br /><br />A odnośnie płyty to idź kolego do punktu ksero lub jakiegoś zakładu fotograficznego, kup tam pendriva i poproś, aby Ci skopiowali na niego tą płytę.<br />Zaoszczędzisz sobie mnóstwo czasu.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7157">anshar</a> — 24 sie 2015, o 16:09</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[bartibv]]></name></author>
<updated>2015-08-24T14:15:58+01:00</updated>
<published>2015-08-24T14:15:58+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12726&amp;p=138218#p138218</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12726&amp;p=138218#p138218"/>
<title type="html"><![CDATA[Re: ATmega8A - TWI i LCD, wyświetlacz nic nie pokazuje]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12726&amp;p=138218#p138218"><![CDATA[
Panowie mam rozwiązanie tylko nie zabijajcie ! <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><br /><br />Otóż okazało się, że na aukcji był błąd, opisany zegarek nie jest taki jak w BlueBooku, tylko jest DS1307, czego nie było widać, bo był przytarty uC, ale doszedłem do tego mierząc miernikiem pinologię <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br />Także przepraszam Was wszystkich za zawracanie gitary, głupio mi strasznie! <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><br /><br />Mirku to chyba jest pierwsze wydanie bluebooka, kupowałem &quot;używkę&quot;. A co do DVD jestem na wyjeździe, gdzie nikogo nie znam i głupio mi prosić obce osoby o użyczenie komputera :p, nie mniej poradziłem sobie pobierając bibliotekę, ze strony Atnela, gdzie są &quot;poprawki&quot; <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />Odcinek o debugowaniu diodą oglądałem, tylko zamieniłem diodę, na komendę wyświetlania napisu &quot;test&quot;, którą wklejałem linijka po linijce sukcesywnie jak na filmie, po to też rozbierałem funkcję, żeby sprawdzić dokładnie w którym miejscu funkcji TWI_read_buf się wywala <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />Także jeszcze raz przepraszam za kłopot, idę dłubać i próbować, obiecuję się poprawić zarówno w opisie problemu jak i sprawdzaniu modułów:) Przepraszam Was serdecznie jeszcze raz i dzięki za cierpliwość:)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10738">bartibv</a> — 24 sie 2015, o 14:15</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2015-08-23T20:55:28+01:00</updated>
<published>2015-08-23T20:55:28+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12726&amp;p=138186#p138186</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12726&amp;p=138186#p138186"/>
<title type="html"><![CDATA[Re: ATmega8A - TWI i LCD, wyświetlacz nic nie pokazuje]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12726&amp;p=138186#p138186"><![CDATA[
<div class="quotetitle">bartibv napisał(a):</div><div class="quotecontent"><br />Mirku niestety nie mam napędu w laptopie :/ Może mogę gdzieś kupić samo DVD w wersji cyfrowej, wtedy niejako rozwiązałbym problem..?<br /></div><br />Wiesz co? ja bym zrozumiał, że jesteś na wyspie bezludnej i masz tylko tego laptopa bez napędu DVD ... ale w dzisiejszych czasach ? nie mów mi, że jeśli sam nie masz to nie znasz kogoś kto ma taki napęd, w szkole nawet - no gdziekolwiek ... sorki ale troszkę uważam to za sztuczny problem ... Myślę, że mniej czasu zajęłoby ci znaleźć gdzieś kogoś z DVD i skopiować sobie kod na pendrive ...<br /><br />ale ok tymczasem - to powiedz mi ? ... ty sobie przepisujesz kody bibliotek z książki? i nie sądzisz, że mogłeś już na tym etapie z tysiąc błędów popełnić ? ... Troszkę na własne życzenie się katujesz - tym bardziej jak widzę, co ty wyprawiasz &quot;RĘCZNIE&quot; przed wejściem w pętlę główną ... ręcznie jakieś twi start, twi stop .... .... sorki ale już tu sobie sam bat na siebie kręcisz<br /><br />Zapytam tylko jakie masz wydanie książki ? To starsze w miękkiej oprawie ? jeśli tak to zajrzyj do aktulalizacji na stronie atnel bo tam był mały błąd w którejś funkcji bodajże twi_stop() - trzeba poprawić<br /><br />trzeba też inicjalizować TWI - co niby już robisz - ale w porównaniu do książki nawet to dalej już mieszasz niemożebnie <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><br /><br />poza tym jak możesz wklejać schemat , który zawiera kupę i to poważnych błędów i pisać sobie w tekście żeby nie patrzeć na schemat bo ty masz jednak rezystory podciągające włączone na SDA i SCL ..... sorki ale przy takim podejściu to podchodzisz niepoważnie i nie szanujesz czasu tych ludzi na forum, którzy chcą ci pomóc - bo co z innymi babolami ? to ma być zgadywanka ?LCD jest przecież źle podłączony a ja słyszę że niby coś działa do którejś linijki a przy takim podłączeniu jak na tym schemacie nic nie powinno działać <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><br /><br />proszę więc potraktuj to nieco poważniej i narysuj ten schemat poprawnie i tak jak to masz podłączone - jeśli chcesz żeby ci pomóc .... zamiast urządzać tu kalambury<br /><br />poza tym zakładając nawet że jakaś linijka tekstu ci się wyświetla a później ZONK to znaczy że masz jakiegoś MEGA BABOLA na I2C i może nawet te rezystory masz źle podłączone - i co ? mamy zgadywać dalej jak ? Chce ci się tyle czasu tracić zamiast RAZ  A PORZĄDNIE opisać problem ?<br /><br />Poza tym powiedz mi - w całej książce piszę to kilkakrotnie - NIE DEFINIUJE się F_CPU w kodzie a ty co robisz ???<br /><br />Kolejna rzecz ... czytałeś w książce o debugerze na jednej diodzie LED ? ... pewnie też nie - no to nawet poradnik wideo do tego nakręciłem<br /><br /><!-- m --><a class="postlink" href="http://mirekk36.blogspot.com/2014/04/puapki-programowe-debuger-na-jednej.html" >http://mirekk36.blogspot.com/2014/04/pu ... ednej.html</a><!-- m --><br /><br />oglądałeś to? ... jeśli nie to obejrzyj i zacznij stosować - znajdziesz miejsce gdzie ci się kod zatrzymuje a ja mogę się założyć tu i teraz że zatrzymuje się na obsłudze TWI bo coś sprzętowo masz nie tak - a funkcje dla uproszczenia przekazu pisałem w sposób blokujący - czyli jak ktoś np nie da tych rezystorów albo źle podłączy coś to się zatrzyma i tak miało być w moim założeniu bo wtedy nawet łatwiej błąd znaleźć ... szczególnie takim debugerem i zrozumieć jak bardzo programowanie procków zależy od elektroniki a nie tylko od napisanego programu.<br /><br />czekam w takim razie na pełne i poprawne przedstawienie problemu - ale liczę też że sprawdzisz sam to o czym napisałem wyżej , i być może nawet sam już to rozwiążesz - czego ci życzę<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 23 sie 2015, o 20:55</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[bartibv]]></name></author>
<updated>2015-08-23T20:02:18+01:00</updated>
<published>2015-08-23T20:02:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12726&amp;p=138183#p138183</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12726&amp;p=138183#p138183"/>
<title type="html"><![CDATA[Re: ATmega8A - TWI i LCD, wyświetlacz nic nie pokazuje]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12726&amp;p=138183#p138183"><![CDATA[
U mnie jest podłączony do masy, ale sprawdzałem obydwa adresy i jest tak samo...<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=10738">bartibv</a> — 23 sie 2015, o 20:02</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[anshar]]></name></author>
<updated>2015-08-23T19:57:12+01:00</updated>
<published>2015-08-23T19:57:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12726&amp;p=138181#p138181</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12726&amp;p=138181#p138181"/>
<title type="html"><![CDATA[Re: ATmega8A - TWI i LCD, wyświetlacz nic nie pokazuje]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12726&amp;p=138181#p138181"><![CDATA[
Zobacz na <a href="http://atnel.pl/atb-uklady-scalone.html"  class="postlink">ten</a> schemat PCF8583, zwróć uwagę gdzie jest podłączony pin A0, który odpowiada za wybór adresu, w tym przypadku 0xA2.<br />Z tego co pamiętam to gdy:<br />A0 podłączony do Vcc to ustawiony jest adres 0xA2, a gdy<br />A0 podłączony do GND to 0xA0<br /><br />A jak jest u Ciebie?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7157">anshar</a> — 23 sie 2015, o 19:57</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[bartibv]]></name></author>
<updated>2015-08-23T19:29:37+01:00</updated>
<published>2015-08-23T19:29:37+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12726&amp;p=138178#p138178</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12726&amp;p=138178#p138178"/>
<title type="html"><![CDATA[Re: ATmega8A - TWI i LCD, wyświetlacz nic nie pokazuje]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12726&amp;p=138178#p138178"><![CDATA[
Mirku niestety nie mam napędu w laptopie :/ Może mogę gdzieś kupić samo DVD w wersji cyfrowej, wtedy niejako rozwiązałbym problem..?<br />Schemat:<br /><a href="https://obrazkiforum.atnel.pl/10738/01c6db7f18b469a42634c4b401fd799a.png"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/10738/01c6db7f18b469a42634c4b401fd799a.png" alt="Obrazek" /></a><br /><br />RTC jest podpięty w module. Oczywiście rezystory 4.7k też są podpięte. Sam LCD działa, aż do zaznaczonej wcześniej linii kodu...<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10738">bartibv</a> — 23 sie 2015, o 19:29</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2015-08-23T19:02:50+01:00</updated>
<published>2015-08-23T19:02:50+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12726&amp;p=138171#p138171</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12726&amp;p=138171#p138171"/>
<title type="html"><![CDATA[Re: ATmega8A - TWI i LCD, wyświetlacz nic nie pokazuje]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12726&amp;p=138171#p138171"><![CDATA[
To zacznij od schematu jak to podłączyłeś - bo tak to można pisać i pisać i nie znajdziemy gdzie babola robisz .... a na płycie DVD w książce masz na 100% działający kod do skompilowania<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 23 sie 2015, o 19:02</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[bartibv]]></name></author>
<updated>2015-08-23T18:15:58+01:00</updated>
<published>2015-08-23T18:15:58+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12726&amp;p=138164#p138164</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12726&amp;p=138164#p138164"/>
<title type="html"><![CDATA[Re: ATmega8A - TWI i LCD, wyświetlacz nic nie pokazuje]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12726&amp;p=138164#p138164"><![CDATA[
Niestety nic nie poszło dalej <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /> Wrzuciłem F_CPU do toolchaina. Swoją drogą dzięki wielkie za rozjaśnienie tego <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> rozebrałem funkcję TWI_read_buf na czynniki pierwsze... niestety wyświetlacz nie pokazuje nic. Linia kodu po której LCD przestaje wyświetlać napis &quot;TEST&quot; zaznaczona w kodzie...<br />[syntax=c]LCD_Initalize();<br />//odczyt 3 bajtów do bufora od adresu 0x02 z pamięci RAM naszego RTC<br /><br />DDRC =0b00000000; <br />PORTC =0b00110000; <br />//TWI_inicjacja();<br />i2cSetBitrate( 100 );<br /><br />TWI_start();<br />TWI_write(0b10100000);//wysłanie adresu urządzenia<br />TWI_write(0x02);//wysłanie adresu komórki pamięci do odczytania<br />TWI_start();//ponowne wysłanie komendy start<br />TWI_write(0b10100000 + 1);//ponowne wysłanie adresu urządzenia, tym razem ostatni bit ustawiamy na 1 (READ)<br />//bufor&#91;0&#93; = TWI_read(0);//dane&lt;&lt;TU SIĘ WYKRZACZAM<br />//TWI_stop();<br />//bufor&#91;0&#93; = TWI_odczyt(0b10100000,0x02);//komenda &quot;stop&quot;<br />//TWI_read_buf(0xA2, 0x02, 3, bufor );<br />sekundy = bcd2dec(bufor&#91;ss&#93; );<br />minuty = bcd2dec(bufor&#91;mm&#93; );<br />godziny = bcd2dec(bufor&#91;hh&#93; );<br />//potem pętla główna programu, bez zmian[/syntax]<br /><br />Kod funkcji &quot;TWI_read<br />[syntax=c]//funkcja czytająca jeden bajt<br />uint8_t TWI_read( uint8_t ack )<br />{<br /> TWCR = (1&lt;&lt;TWINT) | (ack&lt;&lt;TWEA) | (1&lt;&lt;TWEN);<br /> while(!(TWCR&amp;(1&lt;&lt;TWINT)));<br /> return TWDR;<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10738">bartibv</a> — 23 sie 2015, o 18:15</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kicajek]]></name></author>
<updated>2015-08-21T23:25:44+01:00</updated>
<published>2015-08-21T23:25:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12726&amp;p=138048#p138048</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12726&amp;p=138048#p138048"/>
<title type="html"><![CDATA[Re: ATmega8A - TWI i LCD, wyświetlacz nic nie pokazuje]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12726&amp;p=138048#p138048"><![CDATA[
<div class="quotetitle">anshar napisał(a):</div><div class="quotecontent"><br />Poprawna wersja to oczywicie ta bez wykrzyknika.<br /></div><br />- sorry - patrzyłem tylko do BB nie czytając errat.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=826">kicajek</a> — 21 sie 2015, o 23:25</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[anshar]]></name></author>
<updated>2015-08-21T21:54:27+01:00</updated>
<published>2015-08-21T21:54:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12726&amp;p=138046#p138046</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12726&amp;p=138046#p138046"/>
<title type="html"><![CDATA[Re: ATmega8A - TWI i LCD, wyświetlacz nic nie pokazuje]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12726&amp;p=138046#p138046"><![CDATA[
Poprawna wersja to oczywicie ta bez wykrzyknika.<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 17 minutach ]</span></strong><br /><br />Brakuje Ci funkcji ustawiającej prędkość na I2C.<br />Poczytaj BB, a znajdziesz tam funkcję: <br />[syntax=c]void i2cSetBitrate(uint16_t bitrateKHz);[/syntax]<br />Dodaj jej wywołanie w main.c : <br />[syntax=c]i2cSetBitrate( 100 );[/syntax]<br />Oprócz tego nigdy w kodzie nie umieszczamy <br />[syntax=c]#define F_CPU 1000000[/syntax]<br />robimy to w ustawieniach projektu. Zobacz <a href="https://www.youtube.com/watch?v=UhcyBpM57vo&amp;feature=youtu.be&amp;t=3026"  class="postlink">tutaj.</a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7157">anshar</a> — 21 sie 2015, o 21:54</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[bartibv]]></name></author>
<updated>2015-08-21T21:14:16+01:00</updated>
<published>2015-08-21T21:14:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12726&amp;p=138043#p138043</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12726&amp;p=138043#p138043"/>
<title type="html"><![CDATA[Re: ATmega8A - TWI i LCD, wyświetlacz nic nie pokazuje]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12726&amp;p=138043#p138043"><![CDATA[
Wiem, ale po przeczytaniu tego, wywaliłem wykrzyknik. Z nim, czy bez, wyświetlacz nie działa <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><br /><!-- m --><a class="postlink" href="http://www.atnel.pl/i2c_twi_lib_stop_error.html" >http://www.atnel.pl/i2c_twi_lib_stop_error.html</a><!-- m --><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10738">bartibv</a> — 21 sie 2015, o 21:14</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kicajek]]></name></author>
<updated>2015-08-21T21:08:56+01:00</updated>
<published>2015-08-21T21:08:56+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12726&amp;p=138042#p138042</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12726&amp;p=138042#p138042"/>
<title type="html"><![CDATA[Re: ATmega8A - TWI i LCD, wyświetlacz nic nie pokazuje]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12726&amp;p=138042#p138042"><![CDATA[
Witam<br />To chyba nie to, ale masz też błąd:<br />[syntax=c]void TWI_stop(void)<br /><br />{<br />        TWCR = (1&lt;&lt;TWINT) | (1&lt;&lt;TWEN) | (1&lt;&lt;TWSTO);<br />        while ((TWCR&amp;(1&lt;&lt;TWSTO)));<br />}[/syntax]<br />brakuje &quot;wykrzyknika&quot;<br />[syntax=c]while (!(TWCR&amp;(1&lt;&lt;TWSTO)));[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=826">kicajek</a> — 21 sie 2015, o 21:08</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[bartibv]]></name></author>
<updated>2015-08-21T20:47:22+01:00</updated>
<published>2015-08-21T20:47:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12726&amp;p=138038#p138038</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12726&amp;p=138038#p138038"/>
<title type="html"><![CDATA[ATmega8A - TWI i LCD, wyświetlacz nic nie pokazuje]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12726&amp;p=138038#p138038"><![CDATA[
Witam.<br />Uczę się z książki Mikrokontrolery AVR Język C Podstawy programowania - M. Kardaś. Chciałem wyświetlić dane z RTC na LCD. Do lcd używam biblioteki Radzia.<br /><br />Gdy w kodzie głównym nie ma żadnych komend z TWI wyświetlacz działa poprawnie. Po załączeniu komendy &quot;TWI_read_buf(*******);&quot; wyświetlacz nie pokazuje nic.<br />Proszę o pomoc.<br />(Wyświetlacz podłączony z użyciem BusyFlag, na 4rech pinach, wszystko na PORTB). Rezystory do TWI też są ładnie. Błędów w połączeniu na 100% nie ma.<br /><br />Po sprawdzeniu &quot;programowym debugerem&quot; (while (1) co linijkę) zauważyłem, że program wiesza się po wpisaniu adresu urządzenia ( TWI_write(adr); ), tylko nie wiem co mogę w związku z tym zrobić. Przerzucam się dopiero z Arduino na C, i że tak powiem, jestem totalna zieleń :p<br /><br />main.c<br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#define F_CPU 1000000<br />#include &lt;util/delay.h&gt;<br />#include &quot;HD44780.h&quot;<br />#include &quot;I2C.h&quot;<br />#include &quot;RTC.h&quot;<br /><br /><br />//definicja w typie wyliczeniowym enum wskazującym<br />//na odpowiednie indeksy w tablicy (buforze)<br />enum {ss,mm,hh};<br />uint8_t bufor&#91;3&#93;;//rezerwacja bufora na 3 bajty<br />uint8_t sekundy, minuty, godziny;<br /><br />int main(void)<br />{<br />LCD_Initalize();<br />//odczyt 3 bajtów do bufora od adresu 0x02 z pamięci RAM naszego RTC<br />TWI_read_buf(0xA2, 0x02, 3, 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 /><br />    while(1)<br />    {<br />        LCD_Home();<br />LCD_WriteText(&quot;TEST&quot;);<br />_delay_ms(100);<br />    }<br />}[/syntax]<br /><br />I2C.h<br />[syntax=c]#ifndef I2C_H_<br />#define I2C_H_<br /><br />#define ACK 1<br />#define NACK 0<br /><br />//deklaracje funkcji<br /><br />void TWI_start(void);//funkcja start<br />void TWI_stop(void);//funkcja stop<br /><br />void TWI_write( uint8_t bajt );//funkcja wysyłająca jeden bajt<br />uint8_t TWI_read( uint8_t ack );//funkcja czytająca jeden bajt<br /><br />void TWI_write_buf( uint8_t SLA, uint8_t adr, uint8_t len, uint8_t *buf );//funkcja zapisująca jeden lub więcej bajtów danych<br />void TWI_read_buf(uint8_t SLA, uint8_t adr, uint8_t len, uint8_t *buf);//funkcja czytająca jeden lub więcej bajtów danych[/syntax]<br /><br />I2C.c<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &quot;I2C.h&quot;<br /><br />//**********Definicje funkcji**********//<br /><br />//funkcja start<br />void TWI_start(void)<br />{<br /> TWCR = (1&lt;&lt;TWINT) | (1&lt;&lt;TWEN) | (1&lt;&lt;TWSTA);<br /> while (!(TWCR&amp;(1&lt;&lt;TWINT)));<br />}<br />//funkcja stop<br />void TWI_stop(void)<br />{<br />TWCR = (1&lt;&lt;TWINT) | (1&lt;&lt;TWEN) | (1&lt;&lt;TWSTO);<br />while ((TWCR&amp;(1&lt;&lt;TWSTO)));<br />}<br />//funkcja wysyłająca jeden bajt<br />void TWI_write( uint8_t bajt )<br />{<br /> TWDR = bajt;<br /> TWCR = (1&lt;&lt;TWINT) | (1&lt;&lt;TWEN);<br /> while (!(TWCR&amp;(1&lt;&lt;TWINT)));<br />}<br />//funkcja czytająca jeden bajt<br />uint8_t TWI_read( uint8_t ack )<br />{<br /> TWCR = (1&lt;&lt;TWINT) | (ack&lt;&lt;TWEA) | (1&lt;&lt;TWEN);<br /> while(!(TWCR&amp;(1&lt;&lt;TWINT)));<br /> return TWDR;<br />}<br /><br />//funkcja zapisująca jeden lub więcej bajtów danych<br />void TWI_write_buf( uint8_t SLA, uint8_t adr, uint8_t len, uint8_t *buf )<br />{<br /> TWI_start();//wysłanie komendy &quot;start&quot;<br /> TWI_write(SLA);//wysłanie adresu urządzenia<br /> TWI_write(adr);//wysłanie adresu komórki pamięci w urządzeniu<br /> while (len--) TWI_write(*buf++);//dane<br /> TWI_stop();//komenda &quot;stop&quot;<br />}<br /><br />//funkcja czytająca jeden lub więcej bajtów danych<br />void TWI_read_buf(uint8_t SLA, uint8_t adr, uint8_t len, uint8_t *buf)<br />{<br />TWI_start();//komenda start<br />TWI_write(SLA);//wysłanie adresu urządzenia<br />TWI_write(adr);//wysłanie adresu komórki pamięci do odczytania<br />TWI_start();//ponowne wysłanie komendy start<br />TWI_write(SLA + 1);//ponowne wysłanie adresu urządzenia, tym razem ostatni bit ustawiamy na 1 (READ)<br />while (len--) *buf++ = TWI_read(len ? ACK : NACK );//jeśli długość &gt; 0 wysyłaj potwierdzenie ACK, czyli oczekiwanie na kolejne bajty,<br />// jeśli długość = 0, wyślij NACK, czyli brak potwierdzenia oczekiwania na bajty<br />TWI_stop();//komenda stop<br />}[/syntax]<br /><br />RTC.C<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &quot;RTC.h&quot;<br />#include &quot;I2C.h&quot;<br /><br />//deklaracja funkcji zmieniającej liczbę dziesiętną na dziesiątki i jedności w półbajtach (BCD)<br />uint8_t dec2bcd(uint8_t dec)<br />{<br />return ((dec/10)&lt;&lt;4) | (dec%10);<br />}<br /><br />uint8_t bcd2dec(uint8_t bcd)//odrwotnie<br />{<br />return ((((bcd)&gt;&gt;4) &amp; 0x0F) * 10) + ((bcd) &amp; 0x0F);<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10738">bartibv</a> — 21 sie 2015, o 20:47</p><hr />
]]></content>
</entry>
</feed>