logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Wyświetlacz c avr. Atmega644p

henryxxl 13 Kwi 2011 16:18 3775 21
  • #2 9396113
    mirekk36
    Poziom 42  
    1. warto pokazać schemat jak kolega podłączył LCD do swojego procesora
    2. warto sprawdzić w pliku *.h ustawienia takie jak:

    - ilość wierszy i znaków w wierszu
    - korzystamy z pinu RW czy podłączony do GND
    - przypisanie poszczególnych pinów do LCD (RS,RW,E) oraz D4..D7
    - przełączniki typu #define, które pozwalają na korzystanie z różnych funkcji

    na podstawie takiego pytania i fragmentu kodu jak powyżej - wątpię żeby ktokolwiek cokolwiek mógł poradzić. Schemat to podstawa. Aha i jeszcze jakie jest taktowanie procka ?
  • #4 9396212
    tadzik85
    Poziom 38  
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Nic dziwnego, że nie działa.
  • #6 9396266
    tadzik85
    Poziom 38  
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
    Jest do tego specjalnie przeznaczona.

    PS. mirek chyba nie masz mi za złe?
  • #7 9396278
    mirekk36
    Poziom 42  
    No i zobacz - piszesz wyżej, że:

    Rw-Gnd

    tymczasem w pliku konfiguracyjnym masz na samej górze:

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    (spójrz na komentarze do tego #define - a w książce też to bardzo wyraźnie zdaje się opisywałem ;) )

    czyli włączoną kompilację do obsługi programowej tegoż pinu. Wystarczy że go podłączysz do procka i wszystko prawdopodobnie ruszy. Albo zmień na:

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Ja np ZAWSZE korzystam z wygody podłączania do procka RW, bo i wtedy wyświetlacz szybciej i pewniej działa. I to zdecydowanie szybciej ;)
  • #8 9396306
    henryxxl
    Poziom 26  
    Wszystko działa. Muszę jeszcze raz przeczytać książkę sporo po zapominałem.
    Jak piszesz że z Rw będzie szybciej i pewniej chodził Lcd to i czemu miał bym nie podłączyć (nie zaszkodzi) tylko na razie muszę nauczyć się wyświetlanie napisu na lcd i przewijanie go. To nie takie proste jak w bascomie ale za to mam pełną władzę nad uc :)
  • #9 9397717
    mirekk36
    Poziom 42  
    henryxxl napisał:
    Wszystko działa. Muszę jeszcze raz przeczytać książkę sporo po zapominałem.

    Dokładnie, to na pewno się przyda i to zresztą nie raz. Ja tam tego typu książki po prostu mam zawsze pod ręką, a czasem przed snem nawet sobie czytam jak czegoś nie mogę zrozumieć dobrze w jakiejś tam tematyce ;)


    henryxxl napisał:
    Jak piszesz że z Rw będzie szybciej i pewniej chodził Lcd to i czemu miał bym nie podłączyć (nie zaszkodzi) tylko na razie muszę nauczyć się wyświetlanie napisu na lcd i przewijanie go. To nie takie proste jak w bascomie ale za to mam pełną władzę nad uc :)


    Ale zauważ, że w tym przypadku, gdy użyjesz RW do uC to wcale twoje posługiwanie się takimi bibliotekami nie zmieni się ani o milimetr, za to będzie lepiej działać ;)

    A dodatkowo zapewniam cię, że jak właśnie poczytasz jeszcze i poćwiczysz C, to niedługo sam tu napiszesz, że jednak wyświetlanie na LCD jest nawet prostsze niż w Bascomie - tylko jeszcze troszkę brakuje takiego po prostu doświadczenia. Więc do roboty ;) .... jak to mówią ćwiczenie czyni mistrza - więc dasz radę ;)
  • #10 9397843
    henryxxl
    Poziom 26  
    Dziękuję Panie Mirku za słowa otuchy, właśnie specjalnie wybrałem c dla tego ze na każdą platformę jest, na razie za mało wiem ale w przyszłości jak atmega nie będzie wystarczająca to spróbuję przesiąść się na arm. Właśnie muszę poćwiczyć sporo ale teraz po testach będzie więcej czasu więc biorę się do roboty. Teraz oparłem się na analizowaniu kodów na końcu książki żeby je zrozumieć co jaka komenda robi i w miarę możliwości zmieniać (bawić się tymi kodami), do tego mam zaparcie aby do technikum elektronicznego nie iść z pustą głową więc coś trzeba jeszcze się nauczyć.
    Wracając do avr to moja atmega644p nie potrafi odliczać czasu dokładnie, bez różnicy czy kwarc zewnętrzny albo wewnętrzny. 1 sekunda=6sekund według atmegi.
    Pozdrawiam :)
  • #11 9399366
    henryxxl
    Poziom 26  
    Znowu mam problem z lcd otóż używam program do znaków specjalnych na lcd HD44780 i wszystko było by dobrze gdyby te znaki specjalne nie były obrócone o 45stopni. Macie jakiś sprawdzony program albo to jest wina innego adresowania lcd[/code]
  • #12 9399426
    tadzik85
    Poziom 38  
    Nie 45 a 90 to raz po 2 ten programik o dziwo nie nadaję się do tego celu koduje kolumny nie wiersze.
  • #14 9399487
    tadzik85
    Poziom 38  
    Ja zwykle to ręcznie robię. Aż tak kłopotliwe to nie jest.
  • #15 9697675
    INTOUCH
    Poziom 30  
    Witam.
    Korzystam z biblioteki HD44780 opracowanej przez pana Mirosława Kardaśa.
    Procesor ATMEGA32.
    Mam poważny problem bo podczas wyświetlania tekstu gubi mi literk, a czasami gdy wgrywam to jest czysty ekran.

    Jedyne modyfikacje w kodzie to była zmiana pinów w porcie mikrokontrolera oraz ustawienie nie wyświetlacza na 2x16.


    kod:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • #16 9697710
    mirekk36
    Poziom 42  
    A może by tak kolega coś więcej napisał: jaki procek? jak taktowany? czy poprawnie ustawione fusy? czy sprawdzone połączenia? no i to co ostatnio modne jeśli chodzi o błędy - to jakie zasilanie???? bo ostatnio jest plaga polegająca na tym, że ktoś źle zasila procek tzn np z jakiejś ładowarki ze zbyt małą wydajnością prądową - a podświetlanie sporo zjada prądu - a potem dzieją się cuda dziwne. Przy tak zadanym pytaniu ciężko coś podpowiedzieć.

    Nie wspomnę już o tym , że po while(1) powinien być średnik (sorki za błąd wcześniej w tym miejscu) a u ciebie go nie ma na tym listingu - może tu coś się krzaczy ? teraz nie mam jak sprawdzić nawet.

    ma być jak już:

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    albo

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Dodano po 16 [sekundy]:

    a wtedy return 0; jest niepotrzebne
  • #17 9699496
    marian.dxd
    Poziom 11  
    mirekk36 napisał:
    Nie wspomnę już o tym , że po while(1) powinien być przecinek a u ciebie go nie ma na tym listingu - może tu coś się krzaczy ? teraz nie mam jak sprawdzić nawet.


    Przecinek po while(1) jest błędnym zapisem kodu źródłowego aplikacji (wyjątkiem będzie tutaj zapisanie sekwencji znaków: "while(1)" w komentarzu, ale i tak komentarze nie są brane pod uwagę przy kompilacji - taka ciekawostka dla użytkownika mirekk36).
    Prawidłowo pętla while w pisanej aplikacji powinna być zakończona średnikiem lub jeżeli ma ciało to owo ciało powinno być zapisane w klamrach.
  • #19 9699693
    dondu
    Moderator na urlopie...
    ... tym bardziej, że średnik umieścił w przykładzie:
    mirekk36 napisał:
    ... ma być jak już:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod



    marian.dxd napisał:
    ... taka ciekawostka dla użytkownika mirekk36.

    a to ciekawostka dla Ciebie - pierwsza z lewej: http://mikrokontrolery.blogspot.com/p/ksiazki-dla-ciebie.html
  • #20 9699853
    mirekk36
    Poziom 42  
    marian.dxd napisał:
    ... taka ciekawostka dla użytkownika mirekk36).
    Prawidłowo pętla while w pisanej aplikacji powinna być zakończona średnikiem lub jeżeli ma ciało to owo ciało powinno być zapisane w klamrach.


    Bardzo uprzejmie dziękuję za wyjaśnienie, człowiek uczy się całe życie ;)

    Dodano po 1 [minuty]:

    piotrva napisał:
    Chodziło mirkkowi36 chyba o średnik...


    No ;) hyhyhy czeski błąd - nawet bardzo czeski.
  • #21 9699974
    marian.dxd
    Poziom 11  
    mirekk36 napisał:
    marian.dxd napisał:
    ... taka ciekawostka dla użytkownika mirekk36).
    Prawidłowo pętla while w pisanej aplikacji powinna być zakończona średnikiem lub jeżeli ma ciało to owo ciało powinno być zapisane w klamrach.


    Bardzo uprzejmie dziękuję za wyjaśnienie, człowiek uczy się całe życie :wink:


    Sorki za ten żarcik, oczywiście pomyliłeś się i oczywiście to pierdoła :)

    Masz dystans do siebie miras. A twoją książkę mam i jest genialna :)
  • #22 9704937
    INTOUCH
    Poziom 30  
    Szanowny Panie Mirku bardo miło mi się czyta Pana książką.
    Jednaj jeśli chodzi o bibliotekę dotyczącą wyświetlacza HD44780 to doszedłem do wniosku, że lepiej jeśli zostanę przy sprawdzonej bibliotece autorstwa Radosława Kwietnia.
    Jest ona napisana w miej finezyjny sposób, ale działa bez zarzutu.
    http://radzio.dxp.pl/

    Jeśli chodzi o średnik to poprawiłem.
    Nadal są te same błędy.
    Procesor ATMEGA32. Sprawdzę czy czasem nie jest to wina częstotliwości taktowania.
    Mój procek działa na 16MHz. Biblioteka z pana książki jest napisana dla tego samego typu mikro kontrolera ale o mniejszej częstotliwości.

    Może uda mi się na podstawie tych dwóch bibliotek stworzyć swoją do własnych potrzeb.
REKLAMA