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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2017-11-20T20:16:15+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=8&amp;t=19658&amp;mode</id>
<entry>
<author><name><![CDATA[barteux]]></name></author>
<updated>2017-11-20T20:16:15+01:00</updated>
<published>2017-11-20T20:16:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19658&amp;p=199299#p199299</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19658&amp;p=199299#p199299"/>
<title type="html"><![CDATA[Re: Atmega8 I2C LCD PCF8574 - problem z dzialaniem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19658&amp;p=199299#p199299"><![CDATA[
Z przyjemnoscia posterowalbym czymkolwiek, z tym ze niestety caly haczyk w tym ze wysylanie komend I2C_sendChar() nie powoduje zmian stanów wyjść układu PCF8574 (sprawdzane multimetrem), a tym samym zmian na wejsciu wyswietlacza. Dioda faktycznie widze jest zle podlaczona, o sterowaniu samym podswietleniem nie pomyslalem ale chetnie z tego skorzystam jak juz rozwiaze problem ze zmiana stanow na pinach. Ksiazki niestety nie posiadam.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18370">barteux</a> — 20 lis 2017, o 20:16</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[janusz17]]></name></author>
<updated>2017-11-20T17:21:55+01:00</updated>
<published>2017-11-20T17:21:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19658&amp;p=199293#p199293</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19658&amp;p=199293#p199293"/>
<title type="html"><![CDATA[Re: Atmega8 I2C LCD PCF8574 - problem z dzialaniem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19658&amp;p=199293#p199293"><![CDATA[
Na tym schemacie masz odwrotnie podpiętą diodę podświetlającą wyświetlacz.<br />Zacznij może od tego aby sterować samym podświetleniem LCD.<br />Czy TY masz BlueBooka?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1226">janusz17</a> — 20 lis 2017, o 17:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[barteux]]></name></author>
<updated>2017-11-20T15:47:05+01:00</updated>
<published>2017-11-20T15:47:05+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19658&amp;p=199289#p199289</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19658&amp;p=199289#p199289"/>
<title type="html"><![CDATA[Re: Atmega8 I2C LCD PCF8574 - problem z dzialaniem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19658&amp;p=199289#p199289"><![CDATA[
Kod pisalem sam w oparciu o to co bylo na tej stronie : <!-- m --><a class="postlink" href="https://cyklonus.blogspot.com/2014/06/atmega8-i2c-ekspander-pcf8574p.html" >https://cyklonus.blogspot.com/2014/06/a ... 8574p.html</a><!-- m -->   + dokumentacja Atmega8. Co do tego jak sa polaczaczone to juz wrzucam obrazek.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18370">barteux</a> — 20 lis 2017, o 15:47</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[janusz17]]></name></author>
<updated>2017-11-20T14:34:25+01:00</updated>
<published>2017-11-20T14:34:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19658&amp;p=199288#p199288</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19658&amp;p=199288#p199288"/>
<title type="html"><![CDATA[Re: Atmega8 I2C LCD PCF8574 - problem z dzialaniem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19658&amp;p=199288#p199288"><![CDATA[
Ciężko coś tu doradzić, bo nawet nie napisałeś które bity w tych &quot;pięknych&quot; wartościach binarnych za co odpowiadają, tzn. gdzie fizycznie są przesyłane do LCD. A swoją drogą, skąd wziąłeś tak napisany kod?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1226">janusz17</a> — 20 lis 2017, o 14:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[barteux]]></name></author>
<updated>2017-11-20T13:40:53+01:00</updated>
<published>2017-11-20T13:40:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19658&amp;p=199287#p199287</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19658&amp;p=199287#p199287"/>
<title type="html"><![CDATA[Re: Atmega8 I2C LCD PCF8574 - problem z dzialaniem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19658&amp;p=199287#p199287"><![CDATA[
dopisalem oczekiwanie 20 ms oczekiwania pomiedzy rozkazami dla sterownika i dalej nic :/. Co do wyswietlania F to nie ma osobnej funkcji do tego, natomiast 4 ostatnie wyslane komendy w lcd_init() powinny to powodowac.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18370">barteux</a> — 20 lis 2017, o 13:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[janusz17]]></name></author>
<updated>2017-11-20T11:54:57+01:00</updated>
<published>2017-11-20T11:54:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19658&amp;p=199283#p199283</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19658&amp;p=199283#p199283"/>
<title type="html"><![CDATA[Re: Atmega8 I2C LCD PCF8574 - problem z dzialaniem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19658&amp;p=199283#p199283"><![CDATA[
Moim skromnym zdaniem, na pewno błędna jest ta funkcja inicjalizacji LCD. Z tego co pamiętam, to przy inicjalizacji sterowników LCD, typu HD44780 oprócz wpisywania odpowiednich wartości, wymagane są tez odpowiednie sekwencje czasowe pomiędzy wpisem kolejnych wartości. W Twojej funkcji inicjalizacyjnej, niczego takiego nie widzę.<br />Zastanawiam się też, dlaczego miała by się wyświetlić litera F, skoro po inicjalizacji i2c i lcd, niczego więcej w kodzie nie ma?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1226">janusz17</a> — 20 lis 2017, o 11:54</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[barteux]]></name></author>
<updated>2017-11-20T11:24:12+01:00</updated>
<published>2017-11-20T11:24:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19658&amp;p=199282#p199282</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19658&amp;p=199282#p199282"/>
<title type="html"><![CDATA[Re: Atmega8 I2C LCD PCF8574 - problem z dzialaniem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19658&amp;p=199282#p199282"><![CDATA[
z tym jest pewien problem bo nie mam ani ATB, anie Atmegi32 ani przejsciowki ATB-USB-RS232 :/. Ale moze sprobuje napisac jakis program zeby sprawdzal kolejne adresy i zobacze co sie bedzie dzialo<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18370">barteux</a> — 20 lis 2017, o 11:24</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[micky]]></name></author>
<updated>2017-11-20T05:40:05+01:00</updated>
<published>2017-11-20T05:40:05+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19658&amp;p=199276#p199276</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19658&amp;p=199276#p199276"/>
<title type="html"><![CDATA[Re: Atmega8 I2C LCD PCF8574 - problem z dzialaniem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19658&amp;p=199276#p199276"><![CDATA[
Zacznij od sprawdzenia adresu konwertera I2c scannerem od Mirka. Może zły adres podajesz?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1546">micky</a> — 20 lis 2017, o 05:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Harry]]></name></author>
<updated>2017-11-19T20:36:59+01:00</updated>
<published>2017-11-19T20:36:59+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19658&amp;p=199260#p199260</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19658&amp;p=199260#p199260"/>
<title type="html"><![CDATA[Re: Atmega8 I2C LCD PCF8574 - problem z dzialaniem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19658&amp;p=199260#p199260"><![CDATA[
Odkomentuj kod bo nikt nawet nie zacznie tego czytać.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14685">Harry</a> — 19 lis 2017, o 20:36</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[barteux]]></name></author>
<updated>2017-11-20T16:27:14+01:00</updated>
<published>2017-11-19T20:21:39+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19658&amp;p=199259#p199259</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19658&amp;p=199259#p199259"/>
<title type="html"><![CDATA[Atmega8 I2C LCD PCF8574 - problem z dzialaniem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19658&amp;p=199259#p199259"><![CDATA[
Dzien dobry<br />Na wstępie proszę o przeniesienie do odpowiedniego dzialu. Z gory dziekuje<br />Zakupilem ostatnio wyswietlacz LCD z wlutowanym konwerterem I2C na podstawie PCF8574 i chcialem napisac wlasna, prosta biblioteke umozliwiajaca jego obsluge wlasnie przez ta magistrale. (link do sklepu: <!-- m --><a class="postlink" href="https://botland.com.pl/wyswietlacze-alfanumeryczne/2351-wyswietlacz-lcd-2x16-znakow-niebieski-konwerter-i2c-lcm1602.html" >https://botland.com.pl/wyswietlacze-alf ... m1602.html</a><!-- m -->) I tu sie pojawily schody poniewaz wyswietlacz nijak nie reaguje na utworzone przeze mnie komendy na komendy. Wiecie moze co jest nie tak? Kod ponizej<br /><br /><br /> [syntax=c]* main.c<br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;stdio.h&gt;<br /><br /><br />void I2C_init(void)<br />{TWSR=(1&lt;&lt;TWPS0)|(1&lt;&lt;TWPS1);<br /> TWBR=0X01;<br />}<br /><br /><br /><br />unsigned char I2C_start(unsigned char address)<br />{TWCR=(1&lt;&lt;TWINT)|(1&lt;&lt;TWSTA)|(1&lt;&lt;TWEN);<br />while(!(TWCR&amp;(1&lt;&lt;TWINT)));<br /><br />uint8_t twst;                                                     <br />twst=TWSR &amp; 0xF8;<br />if(twst!=((0x08&amp;0xF8))&amp;&amp;(twst!=(0x10&amp;0xF8)))<br />{return 1;}<br /><br />TWDR = address; <br />TWCR = (1&lt;&lt;TWINT)|(1&lt;&lt;TWEN);<br /><br />while(!(TWCR&amp;(1&lt;&lt;TWINT)));<br /><br />twst = TWSR&amp;0xF8;<br />if((twst !=(0x18&amp;0xF8))&amp;&amp;(twst!=(0x40&amp;0xF8))) <br />{return 1;}<br /><br />return 0;<br />}<br /><br /><br /><br />unsigned char I2C_write(unsigned char data)<br />{uint8_t twst;<br /><br />TWDR=data;<br />TWCR=(1&lt;&lt;TWINT)|(1&lt;&lt;TWEN);<br />while(!(TWCR&amp;(1&lt;&lt;TWINT)));<br /><br />twst=TWSR&amp;0xF8;<br />if(twst!=(0x28&amp;0xF8))<br />{return 1;}<br /><br />return 0;<br />}<br /><br /><br />void I2C_stop()<br />{TWCR=(1&lt;&lt;TWINT)|(1&lt;&lt;TWEN)|(1&lt;&lt;TWSTO); <br /> while(!(TWCR&amp;(1&lt;&lt;TWSTO)));<br /><br />}<br /><br /><br />void I2C_sendChar( char address,  char data)<br />{I2C_start(address);<br /> I2C_write(data);<br /> I2C_stop();<br />}<br /><br /><br />void lcd_init()<br />{unsigned char addres=0b01001110;       <br />for(int i=0; i&lt;3;i++)<br />{I2C_sendChar(addres, 0b00110100);      <br /> I2C_sendChar(addres, 0b00110000);<br />}<br /><br />I2C_sendChar(addres, 0b00100100);<br />I2C_sendChar(addres, 0b00100000);<br /><br />I2C_sendChar(addres, 0b00100100);<br />I2C_sendChar(addres, 0b00100000);<br /><br />I2C_sendChar(addres, 0b11000100);<br />I2C_sendChar(addres, 0b11000000);<br /><br />I2C_sendChar(addres, 0b00000100);<br />I2C_sendChar(addres, 0b00000000);<br /><br />I2C_sendChar(addres, 0b1100100);<br />I2C_sendChar(addres, 0b1100000);<br /><br />I2C_sendChar(addres, 0b00000100);<br />I2C_sendChar(addres, 0b00000000);<br /><br />I2C_sendChar(addres, 0b00010100);<br />I2C_sendChar(addres, 0b00010000);<br /><br />I2C_sendChar(addres, 0b01000101);<br />I2C_sendChar(addres, 0b01000001);<br /><br />I2C_sendChar(addres, 0b01100101);<br />I2C_sendChar(addres, 0b01100001);<br />}<br />//-------------------------------<br /><br />int main(void){<br />_delay_ms(40);<br />sei();<br />I2C_init();<br />lcd_init();<br />while(1)<br />{<br />}[/syntax]<br /><br /><br />Program powinien wyswietlic na ekranie pojedyncza litere F<br /><br />PS nie lutowalem wejsc adresowych A0, A1, A2 w konwerterze do masy, linie SCL i SDA podciagniete do zasilania rezystorami 4,5 kOhm<br /><br />Edit: Po sprawdzeniu multimetrem okazuje sie ze nie zmieniaja sie stany na wyjsciach P0, P1...P7 ukladu PCF8574 wiec najprawdopodobnie wina jest gdzies na poziomie magistrali<br /><br />Edit2: Z jakiegos powodu moge uzyc funkcji I2C_sendChar(a,b) tylko raz i nie wplywa ona na stan wyjsc PCF8574. W programie glownym<br />[syntax=c]int main(void){<br />_delay_ms(40);<br />sei();<br />I2C_init();<br />DDRB=0xFF;<br />PORTB=0xFF;<br />_delay_ms(500);<br />I2C_sendChar(0b01001110, 0b00110100);<br />PORTB=0x00;<br />I2C_sendChar(0b01001110, 0b00110000);<br />PORTB=0xFF;<br /><br />while(1)<br />{<br />}<br />}[/syntax]<br />zapala sie dioda  podlaczona do PB2 po chwili gasnie i juz nie zapala sie po raz drugi, wiec moze cos z ta funkcja I2C_sendChar cos jest nie halo<br /><br />Edit 3: polaczenia<br /><a href="https://obrazkiforum.atnel.pl/18370/03091500047549bfc399886ae42983d1.png"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/18370/03091500047549bfc399886ae42983d1.png" alt="Obrazek" /></a><br /><br />adres PCF8574 okreslilem jako 0b01001110 na podstawie jego dokumentacji <br /><a href="https://obrazkiforum.atnel.pl/18370/e72a9821c18ad622c7b3510e87be3a50.png"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/18370/e72a9821c18ad622c7b3510e87be3a50.png" alt="Obrazek" /></a><br /><br />Edit 4: funkcja przedstawiona w Edit2 zaczela dzialac po zmianie pierwszej komendy w funkcji I2C_init() : TWSR=(1&lt;&lt;TWPS0)|(1&lt;&lt;TWPS1);  na TWSR=(0&lt;&lt;TWPS0)|(0&lt;&lt;TWPS1);   - wyswietlacz dalej nie dziala, wyjscia PCF8574 dalej sie nie zmieniaja (sprawdzone pojedyncza komenda I2C_sendChar(a,b). stale P0=1, P1=1, P2=1, P3=0, P4=0, P5=1, P6=0, P7=0.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18370">barteux</a> — 19 lis 2017, o 20:21</p><hr />
]]></content>
</entry>
</feed>