Dzien dobry
Na wstępie proszę o przeniesienie do odpowiedniego dzialu. Z gory dziekuje
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:
https://botland.com.pl/wyswietlacze-alf ... m1602.html) 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
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Program powinien wyswietlic na ekranie pojedyncza litere F
PS nie lutowalem wejsc adresowych A0, A1, A2 w konwerterze do masy, linie SCL i SDA podciagniete do zasilania rezystorami 4,5 kOhm
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
Edit2: Z jakiegos powodu moge uzyc funkcji I2C_sendChar(a,b) tylko raz i nie wplywa ona na stan wyjsc PCF8574. W programie glownym
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
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
Edit 3: polaczenia

adres PCF8574 okreslilem jako 0b01001110 na podstawie jego dokumentacji

Edit 4: funkcja przedstawiona w Edit2 zaczela dzialac po zmianie pierwszej komendy w funkcji I2C_init() : TWSR=(1<<TWPS0)|(1<<TWPS1); na TWSR=(0<<TWPS0)|(0<<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.