Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 28 mar 2024, o 10:22


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 10 ] 
Autor Wiadomość
PostNapisane: 19 lis 2017, o 20:21 
Offline
Nowy

Dołączył(a): 19 lis 2017
Posty: 5
Pomógł: 0

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


Składnia: [ Pobierz ] [ Ukryj ]
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
Składnia: [ Pobierz ] [ Ukryj ]
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
Obrazek

adres PCF8574 okreslilem jako 0b01001110 na podstawie jego dokumentacji
Obrazek

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.



Ostatnio edytowano 20 lis 2017, o 16:27 przez barteux, łącznie edytowano 13 razy

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 lis 2017, o 20:36 
Offline
Użytkownik

Dołączył(a): 14 sie 2016
Posty: 905
Pomógł: 39

Odkomentuj kod bo nikt nawet nie zacznie tego czytać.

_________________
Moje porady są błędne,nie czytać,zbanować od razu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 lis 2017, o 05:40 
Offline
Użytkownik

Dołączył(a): 25 lip 2013
Posty: 2561
Pomógł: 126

Zacznij od sprawdzenia adresu konwertera I2c scannerem od Mirka. Może zły adres podajesz?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 lis 2017, o 11:24 
Offline
Nowy

Dołączył(a): 19 lis 2017
Posty: 5
Pomógł: 0

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 lis 2017, o 11:54 
Offline
Użytkownik

Dołączył(a): 18 kwi 2013
Posty: 181
Lokalizacja: Kraków
Pomógł: 30

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ę.
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?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 lis 2017, o 13:40 
Offline
Nowy

Dołączył(a): 19 lis 2017
Posty: 5
Pomógł: 0

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.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 lis 2017, o 14:34 
Offline
Użytkownik

Dołączył(a): 18 kwi 2013
Posty: 181
Lokalizacja: Kraków
Pomógł: 30

Ciężko coś tu doradzić, bo nawet nie napisałeś które bity w tych "pięknych" wartościach binarnych za co odpowiadają, tzn. gdzie fizycznie są przesyłane do LCD. A swoją drogą, skąd wziąłeś tak napisany kod?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 lis 2017, o 15:47 
Offline
Nowy

Dołączył(a): 19 lis 2017
Posty: 5
Pomógł: 0

Kod pisalem sam w oparciu o to co bylo na tej stronie : https://cyklonus.blogspot.com/2014/06/a ... 8574p.html + dokumentacja Atmega8. Co do tego jak sa polaczaczone to juz wrzucam obrazek.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 lis 2017, o 17:21 
Offline
Użytkownik

Dołączył(a): 18 kwi 2013
Posty: 181
Lokalizacja: Kraków
Pomógł: 30

Na tym schemacie masz odwrotnie podpiętą diodę podświetlającą wyświetlacz.
Zacznij może od tego aby sterować samym podświetleniem LCD.
Czy TY masz BlueBooka?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 lis 2017, o 20:16 
Offline
Nowy

Dołączył(a): 19 lis 2017
Posty: 5
Pomógł: 0

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.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 10 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Google [Bot] i 3 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO