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

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 10 lip 2025, o 17:28


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 12 ] 
    Autor Wiadomość
    PostNapisane: 14 wrz 2014, o 21:05 
    Offline
    Nowy

    Dołączył(a): 14 wrz 2014
    Posty: 18
    Pomógł: 0

    Witam

    Wiem, że temat był już poruszany, ale mam spory problem z inicjalizacją LCD 2x16 i poświęciłem już dużo czasu na analizę kodu, itp. Niestety nadal nie mogę zainicjalizować wyświetlacza.

    Poniżej kod plików autorstwa pana Mirka. Pomijając zmianę pinów pliki są praktycznie nieruszone.
    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Zaznaczam, że:
    1) Piny podłączone są zgodnie z kodem z lcd44780.h.
    2) Pin RW sterowany jest z mikrokontrolera.
    3) Programator działa i programuje (sprawdzony na innych programach).
    4) Częstotliwość we właściwościach projektu ustawiona jest na 8MHz i tak samo programuję w MkAVRCalculator. Wiem, że jest to poprawne, bo w innym programie zwykła dioda świeci co sekundę, tak jak zaprogramowano.
    5) JTAG jest wyłączony.
    6) Podświetlenie działa, a kontrast ustawiony jest poprawnie.
    7) Kod kompiluje się poprawnie.

    Mimo wszystko po zaprogramowaniu mikrokontrolera na wyświetlaczu, w górnej linii jest widocznych 16 prostokątów. Kombinowałem na różne sposoby, ale najwidoczniej źle, dlatego proszę doświadczonych kolegów o pomoc. Czy brakuje czegoś w main.c?

    --
    alkorinio

    Nie publikujemy listingów bibliotek z książki.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 14 wrz 2014, o 22:07 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 03 mar 2014
    Posty: 580
    Lokalizacja: Jastrzębie-Zdrój
    Pomógł: 71

    Witam,

    Za dużo z postu nie wywnioskuję ani ja ani koledzy z forum więc:

    1.Upewnij się czy masz dobrze zdefiniowany rozmiar wyświetlacza:
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


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


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


    No i musi polecieć ;)

    z Niebieskim pozdRowieniem,
    Doman89



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 15 wrz 2014, o 17:29 
    Offline
    Nowy

    Dołączył(a): 14 wrz 2014
    Posty: 18
    Pomógł: 0

    Przepraszam za biblioteki. Nie doczytałem.

    1) Wyświetlacz ma 2 rzędy, 16 kolumn - zdefiniowane poprawnie.
    2) USE_RW ustawione na 1.
    3) Piny i porty zdefiniowane prawidłowo w stosunku do połączeń. Jeśli mogę, przytoczę fragment:

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


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

    ?

    Sprawdziłem przewody i okazało się, że jeden był trafiony. Wymieniłem i przeprogramowałem uC, ale to nie rozwiązało problemu.

    --
    alkorinio



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 15 wrz 2014, o 18:00 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    alkorinio napisał(a):
    Sprawdziłem przewody i okazało się, że jeden był trafiony. Wymieniłem i przeprogramowałem uC, ale to nie rozwiązało problemu.


    Spotkałem się z kilkoma LCD opartymi o "zgodny" z HD44780 chip , które bardzo źle lub wcale się nie zachowują ze sterowaniem pinu RW z Procka
    co ciekawe jak dasz na stałe do GND to chodzą bezbłędnie ...

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 15 wrz 2014, o 18:29 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 07 lut 2013
    Posty: 600
    Pomógł: 47

    alkorinio napisał(a):
    Czy w takim razie prawidłowy jest fragment w main.c:
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    DDRB |= (1<<PB0);
    PORTB |= (1<<PB0);
    GeSHi


    Ustawianie w main.c
    DDRB |= (1<<PB0);
    PORTB |= (1<<PB0);
    jest nie potrzebne te ustawienia są wykonywane w lcd44780.c

    ------------------------ [ Dodano po: 9 minutach ]

    Jaki masz tam na pokładzie uC?
    skompiluje ci hex-a i sprawdzisz czy problem leży w sprzęcie czy sofcie.

    _________________
    https://www.instagram.com/myfirstquadcopter/



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 6 paź 2014, o 06:22 
    Offline
    Nowy

    Dołączył(a): 14 wrz 2014
    Posty: 18
    Pomógł: 0

    Sprawdziłem RW podłączone na stałe do GND i nadal nie działa. LCD otrzymałem razem z zestawem startowym do książki Atnel, więc wątpię, żeby akurat w tym leżał problem - pan Mirek pewnie zaopatrywał się hurtowo w podobne komponenty.

    Co ciekawe, udało mi się uruchomić wyświetlacz na bibliotekach pana Radka Kwiecienia, ale... No właśnie, ale nie zawsze działa on poprawnie. Niby się inicjalizuje, ale wyświetla coś dopiero po 3-4 włączeniu i czasami są to jakieś bzdury, losowe litery, które nb. nie przekraczają długości stringa wysłanego do LCD. A coś sensownego wyświetla gdzieś co 5-6 raz.
    Myślałem najpierw, że może coś się nie tak inicjalizuje i zacząłem sprawdzać opóźnienia w funkcji inicjalizacyjnej, co nic nie dało. Sprawdzałem też wcześniej zegar na zwykłych diodach i świeciły prawidłowo co 1s. Wszystko oprócz wyświetlacza działa prawidłowo, nawet MSI. Podmiana wyświetlacza na inny daje takie same efekty. Także jestem w kropce. Chyba zacznę pisać na prędko własne biblioteki.

    @ kurnachatka: Mogę podesłać bilbioteki, które mam + main.c.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 6 paź 2014, o 07:58 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 07 lut 2013
    Posty: 600
    Pomógł: 47

    alkorinio napisał(a):
    @ kurnachatka: Mogę podesłać bilbioteki, które mam + main.c.

    to podeślij main.c i ustawienia w lcd44780.h
    Ewentualnie mogę ci skompilować hex-a dla twoich ustawień na moich bibliotekach, tylko musisz mi podać typ procka i częstotliwość taktowania i sprawdzisz u ciebie.

    _________________
    https://www.instagram.com/myfirstquadcopter/



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 6 paź 2014, o 08:29 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27415
    Lokalizacja: Szczecin
    Pomógł: 1043

    alkorinio napisał(a):
    Sprawdziłem RW podłączone na stałe do GND i nadal nie działa. LCD otrzymałem razem z zestawem startowym do książki Atnel, więc wątpię, żeby akurat w tym leżał problem - pan Mirek pewnie zaopatrywał się hurtowo w podobne komponenty.


    Na płycie DVD do książki masz przykłady (dużo przykładów) gdzie użyty jest LCD w zestawie ATB. Chociażby lekcja o LCD ... zastanawiam się skąd te kombinacje alpejskie ? .... To nie ma prawa nie działać - no chyba że coś jest uszkodzone .... albo jeśli sam coś od nowa tworzysz i robisz błędy .... Tylko co za problem sobie sprawdzić kod albo plik HEX z DVD ? żeby się upewnić ?

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 6 paź 2014, o 18:53 
    Offline
    Nowy

    Dołączył(a): 14 wrz 2014
    Posty: 18
    Pomógł: 0

    Okazuje się, że problem leży w zupełnie innym miejscu. A tyle razy przeglądałem kod i zastanawiałem się, co robię źle.

    Mianowicie problem leży po stronie programatora, albo może raczej sposobu programowania. Programator to stk500v2 firmy Microsense i w MkAVRCalculator wykrywany jest poprawnie jako AVRDoper. Jest on ok, tzn. działa i nie powoduje błędów. Problem w tym, że nie działa pod Win7 w trybie COM, a jedynie w trybie HID.

    No a wracając do sprawy inicjalizacji, to dopiero gdy podłączyłem płytkę przez programator pod WinXP z programatorem zainstalowanym w trybie COM mogłem połączyć się z programatorem za pomocą AVR Studio 4. I tam programując uC mogłem wybrać oprócz pliku .hex i .eep równiez plik .elf. I dopiero wtedy wyświetlacz się poprawnie zainicjalizował i poprawnie pracuje.

    Problem w tym, że Microsense nie ma sterowników certyfikowanych dla Win7 i nie zainstaluję programatora w trybie COM pod Win7. A w trybie HID programator działa tylko z AVRDude. Pytanie zatem, co mogę w tym temacie zrobić?

    Widziałem ten oto wątek http://forum.atnel.pl/topic5623.html.

    Domniemam, że rozwiązaniem może być Eclipse?

    Aha, i używałem cały czas czystych bibliotek właśnie z płyty CD. Pomyśleć, że problem mogłem rozwiązać już miesiąc temu, podłączając się pod WinXP.



    Ostatnio edytowano 6 paź 2014, o 19:18 przez alkorinio, łącznie edytowano 1 raz

    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 6 paź 2014, o 19:17 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 03 mar 2014
    Posty: 580
    Lokalizacja: Jastrzębie-Zdrój
    Pomógł: 71

    Witam,

    alkorinio napisał(a):
    No a wracając do sprawy inicjalizacji, to dopiero gdy podłączyłem płytkę przez programator pod WinXP z programatorem zainstalowanym w trybie COM mogłem połączyć się z programatorem za pomocą AVR Studio 4


    Kolega nie zrozum nie źle ale jak można korzystać z AVR Studio 4, skoro masz już parę wersji nowsze IDE czyli Atmel Studio 6.2? To tak jak byś dalej korzystał z Windowsa 98 zamiast Windowsa 7 ;)

    Jednym słowem mówiąc przepaść!!

    Tu masz np. Twój problem (wersja DE):
    http://www.roboternetz.de/community/thr ... Studio-6-2

    Cytuje:
    Also mit dem 6.1er geht's auf jeden Fall. Und das läuft auch unter 64bit.

    Im Menü Tools -> Add target... wählen.
    Im nächsten Fenster unter "Select Tool" STK500 und unter "Select Serial Port" die COM-Schnittstelle auswählen.
    Apply drücken - fertig.
    Nun kann man das STK500 im "Device Programming" Dialog auswählen.
    Eine Anleitung findet man übrigens auch in der Hilfe des Studios, einfach mal nach STK500 suchen...

    Der GNU-Compiler ist übrigens schon im Atmel-Studio integriert.


    z Niebieskim pozdRowieniem,
    Doman89



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 6 paź 2014, o 19:20 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27415
    Lokalizacja: Szczecin
    Pomógł: 1043

    alkorinio napisał(a):
    omniemam, że rozwiązaniem może być Eclipse?


    Panie kochany masz w zestawie ATB WBUDOWANY piękny programator a ty kombinujesz znowu pod górę :(

    czytałeś to:

    http://atnel.pl/ft232r-programator-w-atb.html

    obawiam się, że nie ... ale też pewnie nie oglądałeś tego:

    http://mirekk36.blogspot.com/2013/12/av ... wolno.html

    już nie wspomnę o tym:

    http://mirekk36.blogspot.com/2013/10/re ... torze.html

    i o tym:

    http://mirekk36.blogspot.com/2013/05/mk ... pdate.html

    a warto żebyś to wszystko poczytał i obejrzał oj warto...


    Autor postu otrzymał pochwałę

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 6 paź 2014, o 19:29 
    Offline
    Nowy

    Dołączył(a): 14 wrz 2014
    Posty: 18
    Pomógł: 0

    @doman89:
    No tak, ale tutaj opisują dokładnie, jak wybrać programator podłączony w trybie COM. A mój w trybie COM nie działa.
    Ale i tak dzięki za pomoc.

    @mirekk36
    Przyznam, że nic z tego jeszcze nie czytałem, ani nie oglądałem. Zapewne typowy błąd początkujących. Ale chciałbym zaznajomić się z innym programatorem i rozwiązać przy okazji problem, bo nauczę się czegoś nowego, gdyby przyszło mi kiedyś pracować na nieswoim sprzęcie.

    Zatem zabieram się za lekturę i dziękuję wszystkim, a szczególnie panu Mirkowi za pomoc.

    Myślę, że temat można uznać 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: 12 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 5 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