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



Teraz jest 12 lis 2024, o 03:25


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 9 ] 
Autor Wiadomość
PostNapisane: 3 lut 2022, o 16:15 
Offline
Użytkownik

Dołączył(a): 28 maja 2020
Posty: 52
Lokalizacja: Szczecin - Goleniów
Pomógł: 0

Chodzi mi o konfigurację Biblioteki lcd44780.h z BB. Na Atmega32 działała idealnie nic nie musiałem w niej konfigurować. Ale teraz chcę przetestować mój mały pomysł .... zaistniał problem "nowicjusza" w tym celu używam Atmega8 a tam nie ma Portu A i wszystko mi się posypało ustawiam na Port C.... wykorzystuję piny do sterowana D7,D6,D5,D4 analogicznie podpięte do nóżek procesora 28,27,26,25..... pin RW zwarty do masy..... RS do pinu 24.. a E do pinu 23.... wszystko na Porcie C. ustawienie kontrastu prawidłowe... Poniżej zamieszczam konfigurację pliku h.....


// rozdzielczość wyświetlacza LCD (wiersze/kolumny)
#define LCD_ROWS 2 // ilość wierszy wyświetlacza LCD
#define LCD_COLS 16 // ilość kolumn wyświetlacza LCD

// tu ustalamy za pomocą zera lub jedynki czy sterujemy pinem RW
// 0 - pin RW podłączony na stałe do GND
// 1 - pin RW podłączony do mikrokontrolera
#define USE_RW 0

// tu konfigurujemy port i piny do jakich podłączymy linie D7..D4 LCD
#define LCD_D7PORT C
#define LCD_D7 6 ////////////// nie wiem czy dobrze myślę ale chyba tutaj popełniam błąd
#define LCD_D6PORT C
#define LCD_D6 5 ////////////// analogia j/w
#define LCD_D5PORT C
#define LCD_D5 4 ////////////// analogia j/w
#define LCD_D4PORT C
#define LCD_D4 3 ////////////// analogia j/w

// tu definiujemy piny procesora do których podłączamy sygnały RS,RW, E
#define LCD_RSPORT C
#define LCD_RS 0

#define LCD_RWPORT C
#define LCD_RW 1 /////////////////////////////// czy tu nie powinno być 0

#define LCD_EPORT C
#define LCD_E 2

Reasumując na wyświetlaczu LCD nic się mi nie wyświetla...... jeśli tu jest dobrze to pewnie coś w programie zrobiłem ale proszę mnie naprowadzić czy tu jest dobrze...... bo pewny nie jestem z tymi pinami ich nazewnictwem......



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 lut 2022, o 16:33 
Offline
Użytkownik

Dołączył(a): 25 lip 2013
Posty: 2583
Pomógł: 128

A patrzyłeś na funkcje alternatywne pinów na porcie C? Może one coś Ci mieszają?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 lut 2022, o 20:41 
Offline
Użytkownik

Dołączył(a): 28 maja 2020
Posty: 52
Lokalizacja: Szczecin - Goleniów
Pomógł: 0

Patrzyłem na funkcję w Atmega8 na porcie C
PC5- nóżka 28 -ADC5/SCL podpięty D7 z LCD
PC4- nóżka 27 -ADC5/SDA podpięty D6 z LCD
PC3- nóżka 26 -ADC3 podpięty D5 z LCD
PC2- nóżka 25 -ADC2 podpięty D4 z LCD
PC1- nóżka 24 -ADC1 podpięty RS z LCD
PC0- nóżka 23 -ADC0 podpięty E z LCD

wszystkie przewody sprawdzone ... nie ma przerwy........ kontrast 10kom ... dobrze podpięty.... regulacja jest....i nadal nie działa na ATMEGA8

RW podpięte do masy.... I2C nie używam więc SCL i SDA zbędne



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 lut 2022, o 21:06 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2014
Posty: 1029
Lokalizacja: Trójmiasto
Pomógł: 189

Na wstępie, listingi kodu na forum wstawiamy zgodnie z regulaminem https://forum.atnel.pl/topic7402.html, teraz już tego nie poprawisz, ale pamiętaj na przyszłość.

Apofis napisał(a):
bo pewny nie jestem z tymi pinami ich nazewnictwem......
I słusznie bo nieco namieszałeś.
W bibliotece o której piszesz, konfiguracji co i gdzie jest podłączone dokonujesz wpisując literę portu i numerek pinu danego portu.
Przyjrzyj się rozpisce pinów procka zaczerpniętej z jego noty. Zaznaczyłem fragment zawierający PORTC który wykorzystałeś do podłączenia wyświetlacza.
Obrazek

Apofis napisał(a):
Patrzyłem na funkcję w Atmega8 na porcie C
PC5- nóżka 28 -ADC5/SCL podpięty D7 z LCD
a co masz w ustawieniach konfiguracji:?
Apofis napisał(a):
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

wyżej sam piszesz PC5, a w konfiguracji masz C 6, tak samo wszystkie pozostałe sygnały masz niezgodne.

Apofis napisał(a):
#define LCD_RWPORT C
#define LCD_RW 1 /////////////////////////////// czy tu nie powinno być 0[/syntax]
wyżej w konfiguracji ustawiłeś "0":
Apofis napisał(a):
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

, jak i z tego co piszesz podłączasz pin RW do masy więc sekcja konfiguracji pinu RW jest bez znaczenia, bo jak ustawiasz USE_RW 0 to biblioteka wyłącza sekcję sterowania pinem RW, i sam musisz zadbać by ów pin był faktycznie podłączony do GND.

I jeszcze ważna uwaga: w opisie posługujesz się numeracją pinów obudowy procka, a nawet nie podałeś typu obudowy, czy masz w DIP, czy TQFP czy MLF...? A to bardzo ważne, bo często różne obudowy mają inną ilość wyprowadzeń, a co gorsza sygnały mają na zupełnie innym numerze pinu. Akurat tu masz fart bo wszystkie piny jakie wykorzystałeś pokrywają się numerycznie dla wszystkich obudów, ale np. już piny portów B i D są na zupełnie innym numerze pinu w obudowie DIP, w stosunku do obudów SMD.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 lut 2022, o 21:38 
Offline
Użytkownik

Dołączył(a): 28 maja 2020
Posty: 52
Lokalizacja: Szczecin - Goleniów
Pomógł: 0

xentis ... czy możesz mi podać przykład konfiguracji jednego pinu bo nie mogę skojarzyć tego nazewnictwa... np nóżki 28 procesora
a drugie pytanie
#define LCD_RWPORT C
#define LCD_RW 1 ........................... czy tu nie powinno być 0 zamiast 1

dot: obudowy typ DIP



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 lut 2022, o 23:26 
Offline
Użytkownik

Dołączył(a): 28 maja 2020
Posty: 52
Lokalizacja: Szczecin - Goleniów
Pomógł: 0

xentis.... czy tak jest dobrze

#define LCD_D7PORT C
#define LCD_D7 5



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 lut 2022, o 17:15 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2014
Posty: 1029
Lokalizacja: Trójmiasto
Pomógł: 189

Apofis napisał(a):
xentis.... czy tak jest dobrze

#define LCD_D7PORT C
#define LCD_D7 5
Tak.

Apofis napisał(a):
a drugie pytanie
#define LCD_RWPORT C
#define LCD_RW 1 ........................... czy tu nie powinno być 0 zamiast 1

dot: obudowy typ DIP
Jeśli masz wyżej w konfigu ustawione "USE_RW 0" to tak jak pisałem wcześniej sekcja LCD_RWPORT i LCD_RW jest zupełnie bez znaczenia. Pomyśl, skoro podpinasz pin RW do masy, to jak możesz jednocześnie nim sterować z biblioteki? No nie możesz, więc jaki sens jest definiowanie pinu procka do sterowania nim? Miało by to sens gdybyś sygnał RW wyświetlacza podpiął do procka zamiast do masy, Wówczas procesor może szybciej operować na wyświetlaczu. Chodzi o to, że gdy procek wysyła jakieś komendy do wyświetlacza, ten je wykonuje i zajmuje mu to jakiś czas. Jeśli nie używasz sygnału RW a masz go podpięte do masy, wówczas procek po wysłaniu komend do wyświetlacza odczekuje czas, jaki według producenta wyświetlacza powinno trwać wykonanie tych komend (w bibliotece jest ustawiony maksymalny deklarowany czas wykonywania każdej komendy). Zazwyczaj wyświetlacz ogarnie je szybciej, ale jak nie używasz sygnału RW to procek nie ma tego jak zweryfikować i dla bezpieczeństwa i stabilności odczekuje te czasy.
Jeśli zależy Ci na prędkości, to powinieneś podpiąć sygnał RW wyświetlacza do jakiegoś pinu procka, w bibliotece podać do jakiej nogi podpiąłeś, i ustawić "USE_RW 1" Wówczas procek operując sygnałem RW może sobie sprawdzić czy wyświetlacz już zakończył wykonywanie komendy, i zaraz po potwierdzeniu przejść do następnej.

Apofis napisał(a):
nie mogę skojarzyć tego nazewnictwa... np nóżki 28 procesora
Z punktu widzenia kompilatora i programu zapomnij o stosowaniu nazewnictwa pinów po ich numerze fizycznym w obudowie. poprostu noga 28 to PC5, czyli pin numer 5 portu C.
Jak widzę masz bluebooka więc poczytaj sobie rozdział drugi, w którym na początku masz wyjaśnioną zasadę nazewnictwa pinów.

------------------------ [ Dodano po: 35 minutach ]

Notabene w tej samej książce, w rozdziale 4.6 masz dokładnie opisane jak działa zarówno biblioteka, jak i wyświetlacz wraz z opisem obsługi sygnału RW.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 lut 2022, o 20:29 
Offline
Użytkownik

Dołączył(a): 28 maja 2020
Posty: 52
Lokalizacja: Szczecin - Goleniów
Pomógł: 0

xentis dzięki.... jutro teorię sprawdzę w praktyce... oj jeszcze wiele muszę się nauczyć na te stare lata



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 lut 2022, o 13:47 
Offline
Użytkownik

Dołączył(a): 28 maja 2020
Posty: 52
Lokalizacja: Szczecin - Goleniów
Pomógł: 0

Wszystko dział prawidłowo ... problem był taki właśnie jak go opisał xenitis... temat uważam za zamknięty



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: 9 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 4 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:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO