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



Teraz jest 4 gru 2024, o 19:44


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 22 ] 
Autor Wiadomość
PostNapisane: 29 cze 2015, o 15:38 
Offline
Użytkownik

Dołączył(a): 27 maja 2014
Posty: 75
Pomógł: 0

Witam,

Jakiś czas temu kupiłem w sklepie atnela OLED'a 128x64... Wspólnie z poradnikiem Mirka zrobiłem do niego bibliotekę. Jednak piksel/linia nie chcą się wyświetlić. Zastanawiam się czy to jakiś czeski błąd w kodzie (kompiluje się) czy może jednak problem z wyświetlaczem.

W związku z tym mam prośbę.. Czy mógłby ktoś z Was podesłać testowego hexa dla OLEDa na i2c? Dla ATmegi328p (F_CPU 16MHZ).

SCL - PC5
SDA - PC4
adres oleda 0x78



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 cze 2015, o 16:05 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2014
Posty: 1540
Pomógł: 269

Wieczorem będę w stanie Ci podesłać, a tymczasem napisz czy podłączyłeś rezystory podciągające do VCC na linich SCL i SDA?


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 cze 2015, o 16:55 
Offline
Użytkownik

Dołączył(a): 27 maja 2014
Posty: 75
Pomógł: 0

Tak, 4k7. Na spokojnie, będziesz miał czas to podeślij :) dzięki...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 cze 2015, o 19:36 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2014
Posty: 1540
Pomógł: 269

jacky_cy napisał(a):
Czy mógłby ktoś z Was podesłać testowego hexa dla OLEDa na i2c? Dla ATmegi328p (F_CPU 16MHZ).

SCL - PC5
SDA - PC4
adres oleda 0x78

Proszę bardzo!
Załącznik:
OLED_TEST2.zip


Autor postu otrzymał pochwałę

Załączniki:

Aby zobaczyć załączniki musisz się zalogować. Tylko zalogowani użytkownicy mogą oglądać i pobierać załączniki.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 cze 2015, o 22:46 
Offline
Użytkownik

Dołączył(a): 27 maja 2014
Posty: 75
Pomógł: 0

Wyświetlacz działa ! Czyli coś namieszałem w kodzie... Będę szukał :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 cze 2015, o 00:18 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2014
Posty: 1540
Pomógł: 269

Jedno jest pewne, sprzęt działa! No to teraz zostało najprzyjemniejsze - znaleźć babola! ;)
Proponuję jeszcze raz obejrzeć poradniki od początku do końca.
Trochę czasu potrzeba, ale warto! Można się dzięki temu bardzo dużo nauczyć, a oledzik no mniamniuśny!

Może się przyda:
http://forum.atnel.pl/topic10920.html
http://forum.atnel.pl/topic8344-30.html ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 sie 2015, o 15:46 
Offline
Użytkownik

Dołączył(a): 27 maja 2014
Posty: 75
Pomógł: 0

Muszę się jeszcze poradzić... Generalnie w wolnym czasie w końcu udało mi się obejrzeć poradniki Mirka raz jeszcze no i dalej piksel się nie zapala... Ale mniejsza...

Zaobserwowałem następującą rzecz... Kiedy wgrywam hexa od kolegi anshar oled wyświetla pięknego sampla. Kiedy wyłączę zasilanie i włączę z powrotem oled jest ciemny. Raz na 20 razy zdarzy się, że po włączeniu zasilania bitmapa wyświetli się ponownie. I w związku z tym mam pytanie? Czy można wpierw wyeliminować to zjawisko ? Tzn. czy to mogą być objawy tego że np. wyświetlacz się resetuje? W sumie zacząłbym od tego, a potem najwyżej zrobię bibliotekę razem z Mirkiem po raz trzeci :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 sie 2015, o 16:06 
Offline
Użytkownik

Dołączył(a): 25 lut 2015
Posty: 252
Lokalizacja: Lublin
Pomógł: 23

Reset podciągnięty do VCC?
Zasilanie dobrze połączone i filtrowane?
Zasilacz "wydolny"?

------------------------ [ Dodano po: 3 minutach ]

Zastosuj debuger diodowy, aby ustalić czy procesor/kod w ogóle działa, przy braku efektu na wyświetlaczu.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 sie 2015, o 21:53 
Offline
Użytkownik

Dołączył(a): 27 maja 2014
Posty: 75
Pomógł: 0

Na powyższe pytania odpowiem 3 x tak. Reset uC podciągnięty, zasilanie i filtracja na 100 % ok.

Czy moglibyście mi wskazać w którym miejscu kodu najlepiej porobić takie miganie ledem?

Dobrze rozumuję, że można by było potwierdzić np. poprawną inicjalizację i2C zamiganiem ledem?

I cały czas zastanawia mnie przykład z wgraniem bitmapy? Bitmapa nie zawsze pokazuje się na oledzie przy on-off-on zasilania. Z góry dzięki za dobre rady dobrych ludzi :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 sie 2015, o 22:17 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2014
Posty: 1540
Pomógł: 269

A możesz pokazać schemat lub chociaż kilka zdjęć jak to masz połączone?
Zasilanie masz z USBASP czy jakiegoś zasilacza, jak to wygląda?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 sie 2015, o 18:28 
Offline
Użytkownik

Dołączył(a): 27 maja 2014
Posty: 75
Pomógł: 0

Fotki i schemacik podrzuciłbym jutro, ale generalnie podłączałem to na zestawie uruchomieniowym ZL2AVR jak również do gotowego pcb, które po prostu miało już wyprowadzenia na pinach i2C. Jeśli chodzi o hardware z mojej strony to posprawdzałem wszystko dokładnie, rezystory na SDA i SCL w zestawie uruchomieniowym 3k3 na moim pcb 4k7. Zasilanie próbowałem z usbasp (tu bitmapa włączy się raz na 5 razy), a z zewnętrznego zasilacza (tzn. impulsowy, stabilizowane 3,3 V + odp. filtracja) praktycznie z rzadka się pojawi.

Poradzicie w którym miejscu programu zamigotać ledem? Myślicie że sam OLED może nie mieć podciągniętego resetu?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 sie 2015, o 20:00 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2014
Posty: 1540
Pomógł: 269

Z ciekawości jeszcze raz podłączyłem ten wyświetlacz i zaprogramowałem ATmege328p bezpośrednio tym samym wsadem z tego postu. Uruchomiłem to na zestawie uruchomieniowym ATB, działa z kwarcem 16MHz z 11.0592MHz, nawet bez kwarcu na wewnętrznym oscylatorze RC 8MHz i z fusem CKDIV8 (czyli 8MHz / 8 = 1MHz).
Jaki razultat?
A no taki wyśwetla pięknie za każdym razem, bez znaczenia jak szybko wyłączę zasilanie i włączę ponownie. No katowalem na różne sposoby, no uparty, sobie myślę, no nie chce się zepsuć. Na szybko zmontowałem wszystko na płytce stykowej, zasilanie z USBASP, nawet bez kondensatorów, ale poprawnie i co, no tutaj też działa.
Jaki wnoisek?
Może faktycznie trafiłeś na jakiś taki egzemplarz tego wyświetlacza, który ma problemy.
Przychodzi mi jeszcze jeden pomysł do głowy. Zmień fusebity Twojej ATmega328p na wewnętrzny oscylator RC (8MHz czy 1MHz, bez różnicy) i zobacz czy będzie to samo, tak dla sprawdzenia bez kwarcu.
Czekam na schemat lub zdjęcia, może jednak coś źle robisz?
Co do kodu, no nie wiem jak Ci pomóc z tą diodą, jeśli sprzęt Ci nie działa.
Możemy zrobić tak, podeślij mi na priv to co do tej pory napisałeś (main.c i dwa pozostałe pliki do OLED'a) to zobaczę co tam masz.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 sie 2015, o 20:59 
Offline
Użytkownik

Dołączył(a): 25 lut 2015
Posty: 252
Lokalizacja: Lublin
Pomógł: 23

Zajrzałem na chwilę na forum i zaraz muszę znikać.

Coś na temat debugera:
http://mirekk36.blogspot.com/2014/04/pu ... ednej.html

Co do tego leda to umieść go na początek w pętli while(), aby zobaczyć, czy nie ma totalnego zwisu.
Nie wiem jak szybko kręci ci się pętla nieskończona, jeśli wolno,
to wystarczy zmienna 8 bitowa uint8_t jako licznik (u mnie i).
Jeśli szybko, to daj unsigned int.
Licznik liczy na okrągło zwiększając się przy każdym obiegu pętli, po przepełnieniu uzyskuje 0 i przełacza stan diody na przeciwny.
Przykładowy kod (port/pin sobie sam dobierzesz):

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


W while (1) - pętli nieskończonej:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Jak miga, to problem jest po stronie sterowania wyświetlaczem lub samego wyświetlacza.
Jak się zawiesza musisz wstawić kod debugera do wywoływanej funkcji metodą kolejnych przybliżeń.
Ale wtedy już tylko włączanie albo wyłączanie diody w zależności od kierunku podłączenia do portu.
Czyli pułapka programowa wg. podanego linku. Już nie chce mi się klepać kodu... :)

------------------------ [ Dodano po: 6 minutach ]

Jeszcze uwaga, jak uC nie ruszy wcale, to też nie bedzie migała oczywiście.
Możesz próbować ją sam zaświecić na początek.
Jak się nie zaświeci, to problem sprzetowy, procek nie startuje.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 sie 2015, o 12:17 
Offline
Użytkownik

Dołączył(a): 27 maja 2014
Posty: 75
Pomógł: 0

Z taktowaniem trochę poeksperymentowałem. Dalej nic. Na wewnętrznym RC dalej to samo. Wstawiłem w while miganie diody i miga więc chyba wyświetlacz?

anshar masz paczkę na priv. Looknij proszę, najwyżej kupię nowego oleda :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 sie 2015, o 00:28 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2014
Posty: 1540
Pomógł: 269

jacky_cy napisał(a):
anshar masz paczkę na priv. Looknij proszę, najwyżej kupię nowego oleda :)


Myślę, że to nie wina wyświetlacza.
Poczytaj na priv ;)


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 sie 2015, o 15:41 
Offline
Użytkownik

Dołączył(a): 27 maja 2014
Posty: 75
Pomógł: 0

Dzięki za pomoc anshar ! Wszystko hula !



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 sie 2015, o 15:45 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2014
Posty: 1540
Pomógł: 269

Drobnostka! Jak to mówi pan Mirek, no to musi działać! ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 wrz 2015, o 15:46 
Offline
Użytkownik

Dołączył(a): 27 maja 2014
Posty: 75
Pomógł: 0

Kurde fajny ten oledzik, ale znowu jakiś babol chyba :lol:

Nie chciałem zakładać nowego topica więc piszę tu.
Kombinuję i kombinuję i nic nie wymyśliłem. A chodzi o funkcję drawline...

Mianowicie kiedy wywołuje sobie ją w mainie wszystko jest ok
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Obrazek
do czasu...

zauważyłem, że kiedy różnica między współrzędnymi x obu punktów jest mniejsza od 20 to linia rysowana jest zawsze od współrzędnej (0,y... nawet kiedy argumenty wywołanej funkcji drawline prezentują się w ten sposób:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

to efekt na wyświetlaczu wygląda w ten sposób:

Obrazek

Jest to na tyle problematyczne, że przez to nie mogę stworzyć pionowej linii w dowolnym miejscu oleda, a co za tym idzie nie mogę narysować prostokąta, a co za tym idzie nie mogę zmienić wielkości czcionki !

Z tego co porównywałem to funkcja wygląda identycznie jak ta co miał ją Mirek w poradniku... W sumie widać, że działa ale pionowej linii w dowolnym miejscu narysować nie sposób...

funkcja drawline:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


z góry dzięki za pomoc w wyłapaniu babola :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 wrz 2015, o 16:48 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 sty 2014
Posty: 446
Lokalizacja: DKL
Pomógł: 53

@jacky_cy, funkcja jest raczej ok, wygląda tak samo jak moja.
Pokaż jeszcze jak masz zapisane makro swap()


Autor postu otrzymał pochwałę

_________________
Migracja z punktu B do punktu C
Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 wrz 2015, o 17:18 
Offline
Użytkownik

Dołączył(a): 27 maja 2014
Posty: 75
Pomógł: 0

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 wrz 2015, o 18:28 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2014
Posty: 1540
Pomógł: 269

Powinno być:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 wrz 2015, o 19:57 
Offline
Użytkownik

Dołączył(a): 27 maja 2014
Posty: 75
Pomógł: 0

dzięki wielkie anshar po raz kolejny ratujesz :)

piwko dla ciebie !!!



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

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:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO