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

[ATMEGA32][C]LCD problem

lll7 11 Sie 2008 18:56 3771 7
REKLAMA
  • #1 5429885
    lll7
    Poziom 11  
    Witam serdecznie jak napisałem w temacie mam problem obsługą wyświetlacza lcd. Napięcie kontrastu jest poprawne,(przy wpiętym uC, rządek tajemniczych kwadracików ukazuje się), chociaż dziwnie małe bo ok 0,5V , wyłączyłem fusy JTAGEN i OCDEN, jak było napisane w jednym z postów na elporatl-u.Do obsługi wyświetlacza używam bibliotek ze strony http://radzio.dxp.pl/,korzystam z biblioteki 8-bitowej obsługi wyświetlacza z sprawdzaniem stanu zajętości, w pliku nagłówkowym h. zmieniłem deklaracje portów.Dla szyny danych LCD wykorzystuje port C mikro kontrolera, gdy włożę procesor cały wyświetlacz zapełnia się kwadracikami, nie wiem czy program mam poprawnie napisany, połączenia są natomiast ok, nie raz już sprawdzałem jeżeli ktoś się spotkał już z takim problemem proszę o odpowiedź i pozdrawiam.

    #include <avr/io.h>
    #include <HD44780.h>
    int main(){
    	 LCD_Initalize();
    	 LCD_Clear();
    	 LCD_Home();
    	 LCD_WriteText("mama ma kota");
    	 
    	while (1){
    		
    	}
    	return 0;
    } 
  • REKLAMA
  • REKLAMA
  • #3 5431585
    lll7
    Poziom 11  
    Dzięki serdeczne za bibliotekę co prawda musiałem jeszcze doinstalować AVRlib ale tak to wszystko działa bez zarzutu. :)
  • REKLAMA
  • #5 5890993
    Nes86
    Poziom 13  
    Witam

    Od dwóch dni "walczę" z LCD 16*2. Program pisałem w C ale jedyne co mi się udało wyświetlić to krzaczki albo czarne prostokąty. W akcie desperacji ściągnąłem BASCOMA AVR :) i wrzuciłem program:

    
    Config Portb = &B11111111 : Portb = &B11111111
    Config Portd = &B11111111 : Portd = &B11111111
    
    
    Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.3 , Rs = Portb.2
    Config Lcd = 16 * 2
    Cls
    
    
    Lcd " HELLO WORLD!!!"
    Lowerline
    Lcd " by GIVER 2008"
    
    Do
    
    Loop
    End
    


    A to co uzyskałem:

    ORLD!!!XXXXXXXXX
    by GIVER 2008XX

    gdzie "X" oznacza czarny prostokąt.

    Z tego wynika że procek działa, LCD dział i połączenie też jest ok. Tak mi się wydaje.

    Fusy mam ustawiane na wewnętrzny oscylator RC 8Mhz.
    Nie wiem już w czym może być problem. :(

    Poprawiłem błędy ortograficzne - regulamin p.15
    [zumek]
  • REKLAMA
  • #7 5892610
    you-zek
    Poziom 15  
    MIałem podobny problem. Przyczyna leżała po stronie zbyt szybkiej pracy uC. Kontroler wyświetlacza nie nadążał.
    Pomagało wstawienie dodatkowej kilkumilisekundowej zwłoki po wywołaniu czyszczenia wyświetlacza i po inicjalizacji.
  • #8 5894048
    Nes86
    Poziom 13  
    Wsatawiłem opóźnienia

    Config Portb = &B11111111 : Portb = &B11111111
    Config Portd = &B11111111 : Portd = &B11111111
    
    
    Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.3 , Rs = Portb.2
    Config Lcd = 16 * 2
    Wait 1
    Cls
    Wait 1
    
    Lcd " HELLO WORLD!!!"
    Lowerline
    Lcd " by GIVER 2008"
    
    Do
    
    Loop
    End


    Niestety nic się nie zmieniło

    Bascom nie ma opcji 16*2a tylko 16*2

    Wyświetlacz mam taki: LMC-SSC2B16-01
    Przejrzałem dokumentacje i na moje oko wygląda że niczym się nie różni od innych wyświetlaczy
REKLAMA