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

[atmega8][Bascom] Wyświetlacz niczego nie wskazuje...

hindoos 10 Sie 2008 17:14 1395 12
REKLAMA
  • #1 5426700
    hindoos
    Poziom 34  
    Witam,

    Dopiero wkraczam w świat uC więc proszę o łopatologiczne wyjaśnienie niezrozumiałych przeze mnie kwestii i w miarę logiczne naprowadzenie mnie na rozwiązanie problemu.

    Mam zestaw ZL2AVR z dołączonym wyświetlaczem LCD 16 * 2

    Spróbowałem napisać swój kod, ale ciężko cokolwiek uruchomić. Raz, że nie wiedziałem którą stroną podpiąć sam wyświetlacz (ostatecznie udało mi się uzyskać podświetlenie), ale mimo to na wyświetlaczu zieje pustką. Prawdopodobnie czegoś nie dopisałem w kodzie, chociaż wzorowałem się na oryginalnym listingu z książki "Programowanie mikrokontrolerów w języku BASCOM (M. Wiązania)". Druga ewentualność, to możliwe niezbyt dobre stykanie przewodów (w zestawie mam tylko 10 kabelków pin-pin [ nie wiem nawet jak się to nazywa albo gdzie takie dokupić ] dlatego piny D1, D2, D3 podłączyłem do masy za pomocą krokodylka i nie jestem pewien jakości styku tam, ale wolę się wcześniej upewnić czy na pewno wszystko od strony kodu jest ok.

    Poniżej mój listing:
    
    $regfile = "m8def.dat"
    
    $crystal = 8000000
    
    Config Lcd = 16 * 2
    Config Lcdpin = Pin , Db4 = portd.3 , Db5 = portd.2 , Db6 = portd.1 , Db7 = portd.0 , E = portd.4 , Rs = portd.5
    
    Dim I As Byte
    
    Cls
    Lcd "Test"
    Lowerline
    Lcd "Marek jest madry"
    
    
    End
    


    Jest jeszcze ewentualność, że w mojej niezmierzonej głupocie [ ;) ] coś zjarałem w wyświetlaczu i nic się już nie da zrobić.

    Pozdrawiam i dziękuję za wszelką pomoc!
    hindoos
  • REKLAMA
  • #2 5426735
    klops_mops
    Poziom 17  
    Sam podałeś sobie przyczyny problemu

    Ps. Masz zewnętrzny kwarc 8 Mhz albo ustawiłeś uC na 8 Mhz?

    Jak nie to zmień
    
    $crystal = 8000000 
    na 1000000
    
  • #3 5426740
    hindoos
    Poziom 34  
    Tylko nie wiem która to przyczyna z 3 wymienionych, a chciałem się upewnić, czy kod jest ok.
  • REKLAMA
  • #4 5426817
    11111olo
    Poziom 42  
    Kod jest ok, tylko po co jest linia Dim I As Byte ;)
    Czy ustawiłeś kontrast na wyświetlaczu? Jeśli zasilasz napięciem +5V to wejście Vo podłącz do masy - z reguły daje to optymalny kontrast.
  • #5 5427367
    dawid512
    Poziom 32  
    Podlaczasz jedynie linie D4-D7 oraz RS i E pozostałe niekoniecznie na masie ale dobrze by było je tam podłączyć. Dodaj potencjometr do regulacji kontrastu. Linia R/W ma być podłączona do masy.
  • #6 5543951
    hindoos
    Poziom 34  
    Ok, wyświetlacz odezwał się pokrywając pierwszą linię czarnymi kwadratami, zaś druga pozostaje pusta. Czy to dalej może być kwestia podłączenia, czy już raczej wada wyświetlacza albo kiepska współpraca proca z nim?
  • #7 5544011
    TheWiktus
    Poziom 19  
    Znaczy że wyświetlacz jest raczej sprawny ,obstawiam że podłączyłeś coś nie tak jak trzeba.
  • #8 5544030
    pmmisiek
    Poziom 15  
    Zapomniałeś dodać pętli głównej do loop

    
    $regfile = "m8def.dat"
    
    $crystal = 8000000
    
    Config Lcd = 16 * 2
    Config Lcdpin = Pin , Db4 = portd.3 , Db5 = portd.2 , Db6 = portd.1 , Db7 = portd.0 , E = portd.4 , Rs = portd.5
    
    Dim I As Byte
    
    Cls
    Do
    
       Lcd "Test"
       Lowerline
       Lcd "Marek jest madry"
    
    Loop
    
    End
    
  • REKLAMA
  • REKLAMA
  • #10 5544181
    11111olo
    Poziom 42  
    hindoos napisał:
    Ok, wyświetlacz odezwał się pokrywając pierwszą linię czarnymi kwadratami, zaś druga pozostaje pusta. Czy to dalej może być kwestia podłączenia, czy już raczej wada wyświetlacza albo kiepska współpraca proca z nim?


    To oznacza że do wyświetlacza dochodzi napięcie. Sprawdź połączenia linii oraz czy w Bascomie są one właściwie nazwane.
  • #12 5544324
    11111olo
    Poziom 42  
    Balu napisał:
    Brak inicjalizacji:)
    Może jednak 1Mhz? a nie 8?:P

    Nawet jakby jechał na wewnętrznym oscylatorze 1MHz i skompilował na 8MHz to wyświetlacz i tak zadziała (nie wymaga ścisłych opóźnień, a jak będzie wolniej to nic się nie stanie ).
  • #13 5545042
    hindoos
    Poziom 34  
    Ok, rozwiązanie okazało się dość banalne, próbowałem resetować procesor guziczkiem z płytki testowej, ale dopiero ponowne podłączenie zasilania prawidłowo zainicjowało wyświetlacz i pojawił się upragniony napis - na dowód dorzucam link - http://img65.imageshack.us/img65/9906/img3496cz9.jpg

    Jeszcze raz dziękuję wszystkim za podpowiedzi !!!
REKLAMA