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

ATMega 16 i LCD 4x20 nie działa w trybie 4-bitowym, BASCOM, kwarc 4 MHz

techkom 08 Cze 2005 16:40 2183 5
REKLAMA
  • #1 1560461
    techkom
    Poziom 12  
    Posty: 58
    Ocena: 8
    Witam

    Mam następujący problem:
    Do ATmega 16 podłączam wyświetlacz LCD 4x20 znaków w trybie pin (bo nie da się inaczej), magistrala 4-bit, kwarc 4 MHz i nic nie wyświetla.
    program jest bardzo prosty:

    cls
    lcd "Jakis napis"
    do
    loop

    wyświetlacz podpięty standardowo - EN - PB.3, RS - PB.2, DB7 - PB.7, DB6 - PB.6, DB5 - PB.5, DB4 - PB.4 .
    Program działa (bo co ma nie działać...), zrobiłem miganie jakiejś diody, przerwania, wszystko działa OK - oprócz wyświetlacza. W tą samą płytę uruchomieniową (EVB-503 + adaptery do procesorów) wkładam ATMega 128 i wszystko jest w porządku - wyświetlacz działa tak w trybie PIN jak i w trybie BUS. Zmieniałem ustawienia stosu i nic... Może ktoś spotkał się z podobnym problemem?

    Pozdrawiam

    Marek
  • REKLAMA
  • #2 1560485
    K_o_n_r_a_d
    Poziom 23  
    Posty: 318
    Pomógł: 86
    Ocena: 9
    A kontrast masz dobrze ustawiony?
  • REKLAMA
  • #3 1560563
    techkom
    Poziom 12  
    Posty: 58
    Ocena: 8
    Tak, kontrast jest dobrze ustawiony, bo ten sam wyświetlacz, w tym samym układzie działa dobrze na atmedze 128. I ATMega 16 (2 szt.) też jest dobra, bo steruje diodami, buzzerkiem. Jak zamiast wyświetlacza podłączyłem LEDy, to mrugały, tak jakby procesor wysyłał coś na wyświetlacz.

    Marek
  • REKLAMA
  • #4 1560629
    McRancor
    VIP Zasłużony dla elektroda
    Posty: 5326
    Pomógł: 479
    Ocena: 124
    Temat milion pięćdziesiąt osiem razy wałkowany na elektrodzie, przeszukaj troche zanim zapytasz, bo nie ma możliwości żeby wśród tych tematów nie było odpowiedzi.
  • REKLAMA
  • #5 1561294
    PiotrLotnik
    Poziom 15  
    Posty: 207
    Pomógł: 2
    Ocena: 2
    Sprawdź na portc taki programik.

    $regfile = "m16def.dat"
    $crystal = 4000000
    Config Lcd = 20 * 4
    Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.3 , Rs = Portc.2
    Cls
    Do
    Lcd "ok"
    Waitms 250
    Loop
    End

    U mnie tak działa bez problemu.

    TYLKO NIEZAPOMNIJ USTAWIĆ FuseByts dla portu C

    Pozdrawiam
  • #6 1561323
    techkom
    Poziom 12  
    Posty: 58
    Ocena: 8
    Dzięki za pomoc. Przełączyłem wyświetlacz na port C, wyłączyłem JTAGa i wszystko działa. Dobrze, że jeszcze płytki nie miałem zrobionej...
    Muszę jeszcze poczytać w dokumentacji co trzeba wyłączyć w porcie B, żeby wyświetlacz na nim działał...

    Pozdrawiam

    Marek
REKLAMA