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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2017-10-30T17:29:35+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=12346&amp;mode</id>
<entry>
<author><name><![CDATA[grzechkk]]></name></author>
<updated>2017-10-30T17:29:35+01:00</updated>
<published>2017-10-30T17:29:35+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=198048#p198048</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=198048#p198048"/>
<title type="html"><![CDATA[Re: Konwerter I2C dla wyświetlacza LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=198048#p198048"><![CDATA[
Dałem się wpuścić aż mi wstyd. Jasne, że funkcja. Pozdrawiam<br />Dzięki<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=13087">grzechkk</a> — 30 paź 2017, o 17:29</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[rskup]]></name></author>
<updated>2017-10-29T20:40:41+01:00</updated>
<published>2017-10-29T20:40:41+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=198008#p198008</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=198008#p198008"/>
<title type="html"><![CDATA[Re: Konwerter I2C dla wyświetlacza LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=198008#p198008"><![CDATA[
Masz wyraźnie napisane, że używasz w pliku lcd44780.c w funkcji lcd_int() odwołania do funkcji i2cSetBitrate(), której kompilator nie widzi.<br />Masz dołączoną bibliotekę do I2C i jest ona zainkludowana w lcd44780.c?<br /><br />-- <br />Pozdrawiam,<br />Robert<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 2 minutach ]</span></strong><br /><br />Jeżeli używasz softwarego I2C to możesz nie mieć funkcji ustawiania baudrate i dlatego jej nie znajduje.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3427">rskup</a> — 29 paź 2017, o 20:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[grzechkk]]></name></author>
<updated>2017-10-29T18:06:17+01:00</updated>
<published>2017-10-29T18:06:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=197988#p197988</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=197988#p197988"/>
<title type="html"><![CDATA[Re: Konwerter I2C dla wyświetlacza LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=197988#p197988"><![CDATA[
Wszystko zrobione wg wskazówek, lecz kompilator wywala:<br /><br />avr-gcc -Wl,-Map,LCD_I2C_PCF8574_tiny_13.map -Wl,--gc-sections -mmcu=attiny13 -o &quot;LCD_I2C_PCF8574_tiny_13.elf&quot;  ./LCD/lcd44780.o  ./I2C_SOFT/i2c_soft.o  ./main.o   <br />./LCD/lcd44780.o: In function `lcd_init':<br />lcd44780.c:(.text.lcd_init+0x8): undefined reference to `i2cSetBitrate'<br />collect2.exe: error: ld returned 1 exit status<br />make: *** [LCD_I2C_PCF8574_tiny_13.elf] Błąd 1<br /><br />Przy LCD_I2C_PCF.. kompiluje się normalnie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=13087">grzechkk</a> — 29 paź 2017, o 18:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Parser]]></name></author>
<updated>2017-05-20T08:39:04+01:00</updated>
<published>2017-05-20T08:39:04+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=189532#p189532</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=189532#p189532"/>
<title type="html"><![CDATA[Re: Konwerter I2C dla wyświetlacza LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=189532#p189532"><![CDATA[
<strong><br />Realizacja  transmisji do LCD44780 poprzez konwerter(expander)  I2C na PCF8574 z góry postu ale z dowolnych pinów uC</strong><br /> <br />Przykład przeróbki : Powielić w eclipse lekcję LCD_I2C_PCF8574 z inną nazwą projektu dla sprawdzenia działania <br />Katalog z biblotekami I2C_TWI zlikwidować, w to miejsce wstawić katalog z biblotekami I2C_SOFT z lekcji 08_I2C_SOFT<br />W biblotece lcd44780.c zawierającej obsługę I2C w miejsce bibloteki  i2c.twi.h  nalezy wprowadzic odwłołanie do i2c.soft.h <br />W biblotece lcd44780.h jwst definicja #define PCF8574_LCD_ADDR po której nalezy wprowadzić adres konwertera(expandera) <br />(Jak okreslic adres - są wskazówki we wcześniejszych postach w tym watku) <br />Biblotekę i2c_soft.c pod koniec uzupełnić o 2 dodatkowe funkcje ( zamieszczam dzięki uprzejmości kolegi tonygryps ) :<br />[syntax=c]void I2C_write_int( uint8_t SLA, uint8_t data) {<br /><br />I2C_START();<br />i2cPutbyte(SLA);<br />i2cPutbyte(data);<br />I2C_STOP();<br /><br />}<br /><br />uint8_t PCF8574_read( uint8_t SLA ) {<br />uint8_t res=0;<br />I2C_START();<br />i2cPutbyte(SLA + 1);<br />res = i2cGetbyte( NACK );<br />I2C_STOP();<br />return res;<br />}[/syntax]<br /><br />Wyszczególnić odwołania do tych funkcji w końcówce pliku i2c_soft.h :<br /><br />[syntax=c]void I2C_write_int( uint8_t SLA, uint8_t data);<br />uint8_t PCF8574_read( uint8_t SLA );[/syntax]<br /><br />Plik i2c_soft_cfg.h<br />Uzupełnić o makra upraszczające dostęp do portów :<br />[syntax=c]#define PORT(x) XPORT(x)<br />#define XPORT(x) (PORT##x)<br />// *** PIN<br />#define PIN(x) XPIN(x)<br />#define XPIN(x) (PIN##x)<br />// *** DDR<br />#define DDR(x) XDDR(x)<br />#define XDDR(x) (DDR##x)[/syntax]<br /><br />oraz określić w nim piny z których wychodzimy z I2C do konwertera.<br /><br />Skompilować i sprawdzić czy przykładowy program z licznikiem termometrem i bużką zawarty w main.c działa.<br /><br />------------------<br /><br />Idea samych przeróbek jest taka , ze w wersji sprzętowej  bibloteka LCD z I2C od Mirka pośrednio odwołuje się do funkcji :<br />uint8_t TWI_read_int(uint8_t SLA);<br />uint8_t PCF8574_read( uint8_t SLA ); <br />których nie ma w wersji programowej obsługi I2C  - a więc należało je w niej dodać.<br /><br />PZDR - Paweł<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12906">Parser</a> — 20 maja 2017, o 08:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tonygryps]]></name></author>
<updated>2017-05-20T13:00:19+01:00</updated>
<published>2017-05-19T20:10:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=189515#p189515</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=189515#p189515"/>
<title type="html"><![CDATA[Re: Konwerter I2C dla wyświetlacza LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=189515#p189515"><![CDATA[
Jak Mirek się zgodzi to publikuj bo to naprawdę nie mój kod tylko Mirka ja tylko troszkę to zmodyfikowałem.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12014">tonygryps</a> — 19 maja 2017, o 20:10</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Parser]]></name></author>
<updated>2017-05-19T19:41:06+01:00</updated>
<published>2017-05-19T19:41:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=189511#p189511</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=189511#p189511"/>
<title type="html"><![CDATA[Re: Konwerter I2C dla wyświetlacza LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=189511#p189511"><![CDATA[
Działa. <br />I fajnie, że pomogłeś.   Jeszcze raz dziękuję. <br />Zastanawiam się czy nie warto opublikować  Twoich przeróbek w formie fragmentarycznej oczywiście <br />aby nie upubliczniać  100% bibliotek Mirka.  Jak widziałem ten temat jest nowy.  Tu sam zadecyduj.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12906">Parser</a> — 19 maja 2017, o 19:41</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tonygryps]]></name></author>
<updated>2017-05-19T19:22:51+01:00</updated>
<published>2017-05-19T19:22:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=189509#p189509</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=189509#p189509"/>
<title type="html"><![CDATA[Re: Konwerter I2C dla wyświetlacza LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=189509#p189509"><![CDATA[
a działa Ci?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12014">tonygryps</a> — 19 maja 2017, o 19:22</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Parser]]></name></author>
<updated>2017-05-19T19:25:00+01:00</updated>
<published>2017-05-19T19:20:28+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=189507#p189507</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=189507#p189507"/>
<title type="html"><![CDATA[Re: Konwerter I2C dla wyświetlacza LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=189507#p189507"><![CDATA[
No tak, - wszystko dokładnie pozmieniałem a zapomniałem o adresie ... Dzieki za podpowiedź  <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" />  <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" />   ŚMIGA!!.<br />Jeszcze raz dziękuję koledze za pomoc i poświęcony czasem wręcz bezcenny czas ! <br />Przy okazji info dla posiadaczy tego expandera - rezystory podciągające ma on w sobie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12906">Parser</a> — 19 maja 2017, o 19:20</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tonygryps]]></name></author>
<updated>2017-05-19T14:38:40+01:00</updated>
<published>2017-05-19T14:38:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=189491#p189491</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=189491#p189491"/>
<title type="html"><![CDATA[Re: Konwerter I2C dla wyświetlacza LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=189491#p189491"><![CDATA[
a kolega te piny co w bibliotece ustawił to podciągnoł rezystorami 4,7k do plusa?<br />Z ciekawości zrobiłem tak samo jak pisałeś na pw no i zrób tak :<br />1) w pliku lcd.h ustaw adres dla twojego pcf zobacz czy masz zwarte a0,a1 lub a2 i jaka jest nazwa, czy na końcu jest literka a, czy samo t bo jak at i nie masz zwarte a0-a2 to wpisz adres 0x7e a jak masz na końcu t i nie zwarte a0-a2 to adres to 0x4e. <br />2)oscylator w procku ustaw na 8Mhz albo kwarc nie więcej jak 11059200 hz<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12014">tonygryps</a> — 19 maja 2017, o 14:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[RadekB86]]></name></author>
<updated>2017-05-17T17:43:53+01:00</updated>
<published>2017-05-17T17:43:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=189405#p189405</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=189405#p189405"/>
<title type="html"><![CDATA[Re: Konwerter I2C dla wyświetlacza LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=189405#p189405"><![CDATA[
Tutaj może coś znajdziesz: <!-- l --><a class="postlink-local" href="http://forum.atnel.pl/topic13873.html" >topic13873.html</a><!-- l --><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1837">RadekB86</a> — 17 maja 2017, o 17:43</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tonygryps]]></name></author>
<updated>2017-05-16T19:13:24+01:00</updated>
<published>2017-05-16T19:13:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=189340#p189340</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=189340#p189340"/>
<title type="html"><![CDATA[Re: Konwerter I2C dla wyświetlacza LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=189340#p189340"><![CDATA[
Ja mam taka bibliotekę tylko jest małe ale nie jestem jej autorem ja ją tylko przerobiłem pod i2c soft  więc musisz się spytać Mirka który jest autorem czy mogę udostępnić jak tak to wrzucę .<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12014">tonygryps</a> — 16 maja 2017, o 19:13</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Parser]]></name></author>
<updated>2017-05-16T18:18:07+01:00</updated>
<published>2017-05-16T18:18:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=189338#p189338</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=189338#p189338"/>
<title type="html"><![CDATA[Re: Konwerter I2C dla wyświetlacza LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=189338#p189338"><![CDATA[
Odkopałem stary wątek to fakt. <br />Mczarny , dokładnie tak myślałem jak napisałeś  , wolałem się upewnić. <br />Jednak zastanawiam się ( w ramach ćwiczeń oczywiście ) nad rozwiązaniem programowym dla<br />połączenia : Mikrokontroler --- Expander I2C na PCF8574 --- Wyświetlacz LCD2x16.<br />Np do najmniejszych Attiny które nie mają I2C  ( mają  co prawda  USI podobne do I2C ale to nie dokładnie to samo ) <br />Natomiast te małe  Attiny mają dość dobre ADC więc nadają się do pomiarów. <br />Rozwiązanie programowe wymagałoby  moim zdaniem jeszcze głębszej modyfikacji bibliotek Mirka na HD44780 no i zastosowania<br />też przerobionych  bibliotek i2c_soft  z przykładu programowego I2C.  Ja to już próbowałem naprędce zrobić, ale niestety bez rezultatu.<br /><br />Wydaje mi się że programowe I2c na Lcd z expanderem PCF8574 jest warte pracy, bo pomimo oczywistych wad jest mocno uniwersalne<br />( definiujemy 2 piny i cześć ) <br /><br />W tym miejscu stawiam pytanie czy ktoś forum  już dał radę zrealizować taki projekt a jeśli nie to czy warto opisać co już zrobiłem.<br /><br />PZDR - Paweł<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12906">Parser</a> — 16 maja 2017, o 18:18</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mczarny]]></name></author>
<updated>2017-05-16T07:46:49+01:00</updated>
<published>2017-05-16T07:46:49+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=189320#p189320</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=189320#p189320"/>
<title type="html"><![CDATA[Re: Konwerter I2C dla wyświetlacza LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=189320#p189320"><![CDATA[
Kolega odkopał wątek sprzed dwóch lat, ale Ci odpowiem.<br />Dowolne przypisanie pinów procesora tyczy się standardowego podłączenia wyświetlacza gdzie wykorzystujesz siedem pinów procesora.(D4-D7,RW,E,RS w wyświetlaczu)<br />W przypadku I2C podłączasz oczywiście expander do SDA i SCL procesora chyba, że potrafisz obsłużyć I2C programowo - tylko po co?<br />Biblioteka będzie działać z dowolnym procesorem ale trzeba zwrócić uwagę na rejestry konfiguracyjne.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4651">mczarny</a> — 16 maja 2017, o 07:46</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Parser]]></name></author>
<updated>2017-05-15T22:18:47+01:00</updated>
<published>2017-05-15T22:18:47+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=189305#p189305</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=189305#p189305"/>
<title type="html"><![CDATA[Re: Konwerter I2C dla wyświetlacza LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=189305#p189305"><![CDATA[
Witam, <br /><br />Mam pytanie :  Uzupełnione o obsługę I2C biblioteki hd44780 Mirka  ( przykład LCD_I2C_PCF8574 ) zawierają  informację :<br /><br />// - Dowolne przypisanie każdego sygnału sterującego do dowolnego pinu mikrokontrolera <br /><br />Jak to jest właściwie z dowolnymi przypisaniami pinów ?<br /><br />Jestem początkujący...<br />Akurat przerabiałem ten przykład no i wnioskuję, że expander można podłączać tylko do <br />pinów SDA i SCL w mikrokontrolerze. Czyli jest to rozwiązanie typowo sprzętowe i tylko na <br />Atmegi 8,16,32.  Mam rację ?<br /><br />PZDR<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12906">Parser</a> — 15 maja 2017, o 22:18</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[avrfun]]></name></author>
<updated>2015-12-02T18:19:50+01:00</updated>
<published>2015-12-02T18:19:50+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=146910#p146910</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=146910#p146910"/>
<title type="html"><![CDATA[Re: Konwerter I2C dla wyświetlacza LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=146910#p146910"><![CDATA[
Bardzo dziękuję za wyczerpującą odpowiedź. Wszystko stało się jasne! W najbliższym czasie zmierzę się z tym problemem.<br /><br />Pozdrawiam serdecznie<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9310">avrfun</a> — 2 gru 2015, o 18:19</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[rskup]]></name></author>
<updated>2015-12-02T18:01:59+01:00</updated>
<published>2015-12-02T18:01:59+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=146907#p146907</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=146907#p146907"/>
<title type="html"><![CDATA[Re: Konwerter I2C dla wyświetlacza LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=146907#p146907"><![CDATA[
Co do define, to robisz:<br />[syntax=c]#define PCF8574_LCD_1_ADDR 0x4D<br />#define PCF8574_LCD_2_ADDR 0x4E[/syntax]i masz zdefiniowane dwa adresy. Tylko teraz należy tak wywoływać biblioteki by były odpowiednio wybierane adresy.<br />A to się wiąże niestety z tym ze musisz trochę poprzerabiać te biblioteki i ich wywołania. Bo większość jest pisana tak by był obsługiwany tylko jeden taki sam element - dla lcd_locate() nie ma zaimplementowanego mechanizmu wielowyświetlaczowego.<br />Jak to masz dokładnie zrobić to już Ty musisz wymyśleć w zależności od tego jak korzystasz z bibliotek i co według Ciebie jest najlepsze - jak to Mirek powtarza<div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />wszystko można zrobić na 1000 sposobów<br /></div> i większość z implementacji jest równie dobra.<br />Możesz na przykład zrobić zmienną globalna i przez korzystaniem z funkcji wysokopoziomowych zmieniać w niej numer lcd. Wtedy tylko trzeba zmodyfikować niskopoziomowe funkcje zmieniając w nich wybierany adres urządzenia. Ale jak masz jakieś buforowania dla lcd, pamiętanie stanów, x/y, itp to musisz także te zmienne zduplikować. Czyli zamiast np. [syntax=c]int8_t x;[/syntax] będziesz mógł od razu zrobić uniwersalnie dla dowolniej liczby wyświetlaczy[syntax=c]int8_t x&#91;LCD_COUNT&#93;;[/syntax]gdzie przez LCD_COUNT definiujesz ile masz tych wyświetlaczy <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />[syntax=c]#define LCD_COUNT 2[/syntax]<br />Dlatego jak chcesz mieć uniwersalnie to może lepiej od razu wprowadzić do funkcji bibliotecznych dodatkowy parametr nr_lcd i na podstawie niego zmieniać operowanie na zmiennych.<br />Po to Mirek dał źródła bibliotek byś w takich wypadkach mógł je sobie zmodyfikować do własnych potrzeb.<br /><br />W poradniki o OLEDach Mirek pisze bibliotekę dla 2 LCD. Ale chyba to było tylko w wersji SPI. Ale zawsze możesz obejrzeć. Na pewno nic nie stracisz a pewnie dużo zyskasz <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />-- <br />Pozdrawiam,<br />Robert<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3427">rskup</a> — 2 gru 2015, o 18:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[avrfun]]></name></author>
<updated>2015-12-02T17:15:21+01:00</updated>
<published>2015-12-02T17:15:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=146906#p146906</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=146906#p146906"/>
<title type="html"><![CDATA[Re: Konwerter I2C dla wyświetlacza LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=146906#p146906"><![CDATA[
<div class="quotetitle">rskup napisał(a):</div><div class="quotecontent"><br />Z tego co pamiętam, to funkcje komunikacyjne TWI (I2C) mają przekazywany parametr SLA (slave address). Więc nie powinno być problemu w podawaniu raz jednego raz drugiego adresu urządzenia (LCD).<br />Na płytkach musisz tylko ustawić odpowiednio zwarcie na padach A2:A0, byś miał różne adresy.<br /></div><br />Dzięki. Rozumiem, że trzeba przyznawać odmienne adresy wszystkim urządzeniom na magistrali I2C. U mnie jest tak:<br /><br />w pliku lcd44780.h (LCD1):<br />[syntax=c]#define PCF8574_LCD_ADDR 0x4E[/syntax]<br />w pliku mk_pcf 8583.h (ZEGAR):<br />[syntax=c]#define PCF8583_ADDR 0xA2[/syntax]<br />Gdzie zdefiniować adres drugiego wyświetlacza LCD?<br />Jak określić w programie głównym, którego LCD (1 czy 2) dotyczy rozkaz np. lcd_locate()?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9310">avrfun</a> — 2 gru 2015, o 17:15</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[rskup]]></name></author>
<updated>2015-12-02T13:29:25+01:00</updated>
<published>2015-12-02T13:29:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=146898#p146898</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=146898#p146898"/>
<title type="html"><![CDATA[Re: Konwerter I2C dla wyświetlacza LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=146898#p146898"><![CDATA[
Z tego co pamiętam, to funkcje komunikacyjne TWI (I2C) mają przekazywany parametr SLA (slave address). Więc nie powinno być problemu w podawaniu raz jednego raz drugiego adresu urządzenia (LCD).<br />Na płytkach musisz tylko ustawić odpowiednio zwarcie na padach A2:A0, byś miał różne adresy.<br /><br />-- <br />Pozdrawiam,<br />Robert<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3427">rskup</a> — 2 gru 2015, o 13:29</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[avrfun]]></name></author>
<updated>2015-12-02T08:33:51+01:00</updated>
<published>2015-12-02T08:33:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=146888#p146888</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=146888#p146888"/>
<title type="html"><![CDATA[Re: Konwerter I2C dla wyświetlacza LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=146888#p146888"><![CDATA[
Witam!<br /><br />Po zrozumieniu adresowania 7- i 8-bitowego dla PCF8574 i uruchomieniu komunikacji z LCD po I2C pojawiła się chęć sterowania dwoma wyświetlaczami LCD1 i LCD2 (2xPCF8574). Jak to się realizuje w praktyce? Adres EXP1 ustalamy w bibliotece LCD, ale co z adresem EXP2 i jak programowo zrealizować wysyłanie jednych danych do LCD1 (EXP1), a innych do LCD2 (EXP2)?<br /><br />Pozdrawiam<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: kilkunastu sekundach ]</span></strong><br /><br /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9310">avrfun</a> — 2 gru 2015, o 08:33</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[avrfun]]></name></author>
<updated>2015-11-30T19:00:06+01:00</updated>
<published>2015-11-30T19:00:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=146748#p146748</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=146748#p146748"/>
<title type="html"><![CDATA[Re: Konwerter I2C dla wyświetlacza LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=146748#p146748"><![CDATA[
<div class="quotetitle">rskup napisał(a):</div><div class="quotecontent"><br />Gdy podłączasz LCD po I2C to masz znacznie wolniejszą komunikację niż jak masz podłączone LCD poprzez 8 bitowy interface. Jak jeszcze chcesz często odświeżać informacje na LCD, to już może to być wąskim gardłem. Więc jak tak robisz i masz jeszcze inne urządzenia na tym interface I2C do obsługi, to już możesz nie uzyskiwać zadowalających cię wyników<br /></div><br /><br />Dziękuję za odpowiedź - uspokoiła mnie. Projekt mój jest bardzo &quot;przeładowany&quot;: zegar, czujniki temperatury,  warstwy (w tym animowany napis), WS2812, synchronizacja, ir i chociaż zrealizowany na eventach to najpewniej nie wydala przy LCD na szynie I2C (nawet 400kHz). Prosty zegar z synchronizacją działa ok przy LCD na I2C.<br /><br />Dziękuję jeszcze raz i pozdrawiam<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9310">avrfun</a> — 30 lis 2015, o 19:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[rskup]]></name></author>
<updated>2015-11-30T18:37:32+01:00</updated>
<published>2015-11-30T18:37:32+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=146747#p146747</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=146747#p146747"/>
<title type="html"><![CDATA[Re: Konwerter I2C dla wyświetlacza LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=146747#p146747"><![CDATA[
Gdy podłączasz LCD po I2C to masz znacznie wolniejszą komunikację niż jak masz podłączone LCD poprzez 8 bitowy interface. Jak jeszcze chcesz często odświeżać informacje na LCD, to już może to być wąskim gardłem. Więc jak tak robisz i masz jeszcze inne urządzenia na tym interface I2C do obsługi, to już możesz nie uzyskiwać zadowalających cię wyników.<br /><br />Teoretycznie większość urządzeń na szynie I2C pracuje do 400kHz. Dlatego możesz przetestować zwiększenie taktowania szyny do takiej wartości, bo chyba używasz 100kHz.<br /><br />-- <br />Pozdrawiam,<br />Robert<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 7 minutach ]</span></strong><br /><br />Twój procesor jest u Ciebie masterem, więc napisany przez Ciebie program (algorytm w nim) decyduje o priorytetach.<br />No chyba, że masz wszystko liniowo, czyli po kolei - LCD, zegar, GPS bez dodania jakiej większej logiki. Bo jak tak to normalne że jedna funkcja musi czekać na zakończenie drugiej a ta może długo &quot;okupować&quot; czas procesora, bo nie ma zaimplementowanego współdzielenie czasu.<br />Jednak kilkusekundowe zawieszenia to powinny się zdarzać tylko jak coś animujesz na LCD, bo zwykłe wyświetlenie warstwy nie trwa tak długo.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3427">rskup</a> — 30 lis 2015, o 18:37</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[avrfun]]></name></author>
<updated>2015-11-30T16:38:47+01:00</updated>
<published>2015-11-30T16:38:47+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=146745#p146745</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=146745#p146745"/>
<title type="html"><![CDATA[Re: Konwerter I2C dla wyświetlacza LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=146745#p146745"><![CDATA[
Witam!<br /><br /><div class="quotetitle">rskup napisał(a):</div><div class="quotecontent"><br />Ale wszystkie te funkcje ustawiają tylko wartość w rejestrze TWBR. Dlatego korzystasz z niej tylko raz.<br /><br />A tak na prawdę to powinieneś zrobić tylko jedną kopię bibliotek obsługi TWI (I2C).<br />Ta od LCD przez PCF8574 ma dodatkową funkcję[syntax=c]uint8_t PCF8574_read( uint8_t SLA );[/syntax]Przejrzyj te trzy biblioteki i zrób z nich część wspólną. Pamiętaj tylko o zmianie ścieżek w includach w plikach z niej korzystających.<br /><br />-- <br />Pozdrawiam,<br />Robert<br /></div><br /><br />LCD po I2C podłączone. Nie wszystkie moje projekty działają jednak prawidłowo i to mnie ciekawi. Nie działa np. projekt, w którym zaimplementowałem obsługę warstw z GB (warstwy.c, warstwy.h) i używam bibliotek buf_lcd.c i buf_lcd.h. Obsługa warstw działa w mega zwolnionym tempie, zegar jakby miał czkawkę (przyspiesza i zwalnia), a synchronizacja z GPS odbywa się w dowolnym czasie (co kilka sekund). Po podłączeniu LCD &quot;klasycznie&quot; wszystko działa prawidłowo.<br /><br />Moje pytanie jest takie: czy na linii I2C należy w jakiś sposób różnicować priorytety urządzeń (master, slave, PCF8574, PCF8583)? Wpływ zamiany bibliotek LCD (klasycznie) i LCD(I2C) na funkcjonowanie programu bardzo mnie zastanawia.<br /><br />Pozdrawiam<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9310">avrfun</a> — 30 lis 2015, o 16:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[rskup]]></name></author>
<updated>2015-11-29T22:12:07+01:00</updated>
<published>2015-11-29T22:12:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=146700#p146700</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=146700#p146700"/>
<title type="html"><![CDATA[Re: Konwerter I2C dla wyświetlacza LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=146700#p146700"><![CDATA[
Ale wszystkie te funkcje ustawiają tylko wartość w rejestrze TWBR. Dlatego korzystasz z niej tylko raz.<br /><br />A tak na prawdę to powinieneś zrobić tylko jedną kopię bibliotek obsługi TWI (I2C).<br />Ta od LCD przez PCF8574 ma dodatkową funkcję[syntax=c]uint8_t PCF8574_read( uint8_t SLA );[/syntax]Przejrzyj te trzy biblioteki i zrób z nich część wspólną. Pamiętaj tylko o zmianie ścieżek w includach w plikach z niej korzystających.<br /><br />-- <br />Pozdrawiam,<br />Robert<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3427">rskup</a> — 29 lis 2015, o 22:12</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[avrfun]]></name></author>
<updated>2015-11-29T21:23:27+01:00</updated>
<published>2015-11-29T21:23:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=146696#p146696</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=146696#p146696"/>
<title type="html"><![CDATA[Re: Konwerter I2C dla wyświetlacza LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=146696#p146696"><![CDATA[
Wielkie dzięki, pomógł adres 0x4E! Pojawił się tylko mały (duży) problem, który zaburza wyświetlanie. Trzy biblioteki w projekcie do obsługi zegara i wyświetlacza LCD (po I2C) mają funkcję i2cSetBitrate i wyświetlacz z zegarem zakłócają się wzajemnie. Jak to zunifikować. Ustawienie tych samych prędkości nic nie dało. Fotka w załączeniu:<br /><br /><a href="https://obrazkiforum.atnel.pl/9310/90141fa5177da6085014bd9da621208a.png"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/9310/90141fa5177da6085014bd9da621208a.png" alt="Obrazek" /></a><br /><br />Proszę o pomoc <br />Pozdrawiam<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9310">avrfun</a> — 29 lis 2015, o 21:23</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[avrfun]]></name></author>
<updated>2015-11-29T19:25:24+01:00</updated>
<published>2015-11-29T19:25:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=146675#p146675</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=146675#p146675"/>
<title type="html"><![CDATA[Re: Konwerter I2C dla wyświetlacza LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12346&amp;p=146675#p146675"><![CDATA[
Dziękuję bardzo. Powalczę jutro.<br />Pozdrawiam serdecznie<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9310">avrfun</a> — 29 lis 2015, o 19:25</p><hr />
]]></content>
</entry>
</feed>