Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

program obslugi LCD

gossc 27 Sie 2004 00:33 6331 49
  • #1 27 Sie 2004 00:33
    gossc
    Poziom 10  

    Mam zestaw edukacyjny avt992 z mikrokontrolerem at89s8252 i nie moge uruchomic, podlaczonego do tego zestawu wyswietlacza LCD (16*2 linie, model PVC160203pgn na sterowniku hd44780). Stosowalem przykadowe programiki z ksiazek i nie skutkuje. Czy ktos moglby poratowac mnie w 100% dzialajacym programikiem obslugi LCD w trybie 8bit (moze byc tylko wyswietlenie jednego napisu) napisanym w C, zebym mogl sprawdzic czy wyswietlacz nie jest zepsuty i czy piny dobrze podalczylem.Mam taka konfiguracje:
    Dane P1.0-P1.7
    RS-P0.3
    RW-P0.4
    E-P0.5
    (na portcie P0 - sprawdzilem sa rezysory podciagajace).
    Na razie nic nie dziala tylko jak podlacze zasilanie to czarne kwadraty w jednej linii.POMOCY!!!!

    0 29
  • #2 27 Sie 2004 09:52
    marmur99
    Poziom 17  

    Czarne kwadraty w jednej linii to bardzo pozytywny objaw. Wszystkie tak zaczynają (o ile są sprawne).
    Proponuję, żebyś ściągnął z netu specyfikację hd44780. W niej jest całą procedura inicjalizacyjna oraz wyświetlanie przykładowego napisu. Wszystko jest dokładnie wytłumaczone. Ja w swoim układzie zrobiłem krok w krok i lcd się uruchomił.

    Marmur99

    0
  • #4 27 Sie 2004 12:50
    Dexter77
    Poziom 28  

    W zasadzie kazdy wyswietlacz LCD wymaga jakiejs procedury inicjalizacyjnej zanim bedziesz mogl cos wpisywac, mam nadzieje ze to robisz. Druga sprawa czesto pomijana to zachowanie prawidlowych czasow pomiedzy zboczami W wiekszosci wyswietlaczy opartych na sterowniku Hitachi trzeba zachowac minimum 500ns pomiedzy zmianami stanow na liniach sterujacych. Przy szybkich mikrokontrolerach trzeba czasami dokladac instrukcje "nop" opozniajace troche program. Szczegoly odnosnie czasow sa w PDF-ie. Nie mozna tez zapominac ze czas wyswietlania jednego znaku moze trwac nawet do 40us i w tym czasie wyswietlacz nie przyjmie zadnej innej komendy wiec "ciurkiem" bez sprawdzania flagi zajetosci nie da sie wpisywac.
    Pozdro
    Dexter

    0
  • #5 27 Sie 2004 13:05
    gossc
    Poziom 10  

    No wlasnie przegladalem pdefa od Hittachi, sciagalem rozne specyfikacje te ze strony www.8052 tez (pozmienialem tylko piny a reszta zywcem) i nic. Zero efektu. Zaczynam watpic w technologie LCD, czy to w ogole dziala. Dlatego bardzo bym prosil o jakis w 100% dzialajacym programik obslugi LCD 8Bit.

    0
  • #6 27 Sie 2004 17:36
    gummis
    Poziom 15  

    skoro uzywasz c to twoj kompilator powinien miec w jakims katalogu(np. samples) oblsuge lcd.

    0
  • #7 27 Sie 2004 23:50
    gossc
    Poziom 10  

    Mam C51 keila albo SDCC i przejrzalem wszsytkie ich katalogi i nic tam nie ma! Moze ktos wie w takim razie, gdzie w sieci moge znalezc przykladowy i dzialajacy w 100% program obslugi LCD? :roll:

    0
  • #8 28 Sie 2004 01:33
    ucy74
    Poziom 20  

    gossc napisał:
    Mam C51 keila ...


    Ściągnij sobie fastAVR

    0
  • #9 28 Sie 2004 09:13
    zwora
    Poziom 18  

    Obsluga wyswietlacza na HD44780 jest opisana w ksiazce J. Dolinskiego: "Mikrokontrolery AVR w praktyce". Pod adresem:
    http://www.btc.pl/index.php?id=avr
    sa kody zrodlowe programow do przykladow zawartych w tej ksiazce. W przykladzie 4a i 4b jest omawiana obsluga wyswietlacza, wiec powinienes przegladnac programy z tych katalogow. Programy byly pisane dla kompilatora AVR-GCC. Tutaj mozesz znalezc informcje jak skonfigurowac ten kompilator z WinAVR:
    https://www.elektroda.pl/rtvforum/viewtopic.php?t=141561&highlight=avr+studio

    0
  • #10 28 Sie 2004 10:19
    filip.jaskolski
    Poziom 14  

    W czasie wakacji właśnie męczyłem się z dokładnie takim samym problemem (z tym że procesor AT89s51). Miałem dużo problemów, ale w końcu udało się - zrozumiałem program w ASM z książki, tak, że byłem w stanie go wykorzystać, a także od podstaw zrozumieć jak działa. Jak koledzy powiedzieli, potrzebna jest procedura inicjalizacji i ustawienie parametrów. Może dzisiaj wieczorem wrzucę w pełni działający program w ASM, który może wyświetlać dowolne stringi zapisane w etykietach. Jeszcze jedna bardzo ważna rzecz - LCD MUSI MIEĆ WSPÓLNĄ MASĘ Z PROCESOREM. Inaczej stany "wiszą w powietrzu"... Lecz pamiętaj, zasilanie LCD to max 6V. Najlepiej 5V, najmniej 4,5V. Możesz po prostu połączyć kabelkiem mase procesora i mase LCD.

    Kontakt ze mną - mejl (swallower@wp.pl), albo GG#: 3200098, może coś pomogę? :)

    P.S: Nie jestem fachowcem, wręcz przeciwnie, jestem laikiem, ale przynajmniej mogę pomóc z tego co wiem ;) .

    0
  • #11 28 Sie 2004 15:09
    gossc
    Poziom 10  

    Oki dzieki, ale napisze jeszcze cos, bo wydaje mi sie to istotne. Wyswietlacz to PC1602F firmy POWERTIP. Z tego co wyczytalem u nich na stronie jest on na sterowniku samsunga s6a0069. Podobno jest on zgodny z KS0066U, a ten ostatni z hitachi44780 (czytalem jakies opinie tu na forum). Jednak nigdzie w dokumentacji to nie jest napisane, z reszta wgrywalem programiki z renomowanych stron na hitachi44780 i moj wyswietlacz zupelnie nie reaguje!! W dokumentacji od s6a0069 wyczytalem cos takiego:
    "When the power is turned on, S6A0069 is initialized automatically by power on reset circuit. During the initialization,
    the following instructions are executed, and BF(Busy Flag) is kept "High"(busy state) to the end of initialization.
    (1) Display Clear instruction: Write "20H" to all DDRAM
    (2) Set Functions instruction
    DL = 1 : 8-bit bus mode
    N = 1 : 2-line display mode
    F = 0 : 5 X 8 font type
    (3) Control Display ON/OFF instruction
    D = 0 : Display OFF
    C = 0 : Cursor OFF
    B = 0 : Blink OFF
    (4) Set Entry Mode instruction
    I/D = 1 : Increment by 1
    SH = 0 : No entire display shift
    ...
    ...

    NIe wiem o co chodzi.Jest napisane, niby ze inicjalizuje sie automatycznie, a pozniej pisza o jakichs bitach do wyboru? Wiec cos jednak trzeba wybrac i to nie jest automatyczne. Pozniej jest tabelka (strona 28) inicjalizacji w trybie 8 bit. Napisalem programik wedlug tej tabeli i tez nic! (czarne prostokaty, dziala kontrast, kabeli od danych, rs,rw,E sa dobre bo podlaczelem diodki i swieca). Co do masy to jak patrze na schemat tego zestawu avt992 to masa LCD jest podlaczona do wspolnej "duzej" masy, do ktorej jest podpiety i procek. Zalczam pdefa od sterownika s6a0069 i prosze o pomoc, bo sie z tym mecze juz pare miechow :roll:

    0
  • #12 28 Sie 2004 15:15
    gossc
    Poziom 10  

    Acha zeby nie namieszac.We wczesniejszych postach wpisalem omylkowo nie ten wyswietlacz. Ten co mam to PC1602F.

    0
  • #13 28 Sie 2004 15:21
    gummis
    Poziom 15  

    ;masz dwa makra
    ;LCDinicjacja musisz wstawic po resecie.
    ;ProcWriteLCD wstaw gdzie ci sie podoba , zawiera procedury komunkowania sie z lcd


    ;ustawienia systemu LCD
    ilLin EQU 2 ;1 lub 2 czyli ile wierszy
    TypCzci EQU 0 ;0 lub 1 , jesli 0 to 5x8, jesli 1 to 5x10
    iniID EQU 1 ;0 lub 1 , jesli 0 to dekrementowanie wskaznika danych
    iniS EQU 0 ;0 lub 1 , jesli 0 to brak mozliwosci przesuwania
    TimeZwl EQU 50 ;czas zwloki na nastepna dana
    ProcLdCzci EQU 1 ;czy tablica z czcionkami ma byc razem z procedura ladujaca (1=tak)
    ;Makra
    ClrDsp MACRO
    mov a,#1 ;czysci wyswietlacz i ustawia kursor na poczatek
    acall LCDWrIns
    ENDM
    ;-----------------
    RetHome MACRO
    mov a,#2 ;ustawia kursor na poczatek
    acall LCDWrIns
    ENDM
    ;-----------------
    IncDat EQU 2
    DecDat EQU 0
    ShiftDat EQU 1
    NoShiftDat EQU 0

    ModeSet MACRO parametr
    mov a,#4 OR parametr
    acall LCDWrIns
    ENDM
    ;-----------------
    DspOn EQU 4
    DspOff EQU 0
    CursOn EQU 2 ;wyswietlenie obrazu,kursora, i jego migotanie
    CursOff EQU 0
    BlinkOn EQU 1
    BlinkOff EQU 0

    DspCtrl MACRO parametr
    mov a,#8 OR parametr
    acall LCDWrIns
    ENDM
    ;-----------------
    Shift MACRO co
    mov a,#16h OR co
    acall LCDWrIns
    ENDM
    ;-----------------
    SetDD MACRO adres
    mov a,#80h OR adres
    acall LCDWrIns
    ENDM
    ;-----------------
    LCDinicjacja MACRO
    ;-------- dla interfejsu 4 bitowego
    clr E
    mov a,#30h
    acall LCDWrInsH

    mov a,#45
    LCDpetla4ms:
    acall LCDWait
    djnz acc,LCDpetla4ms

    mov a,#30h
    acall LCDWrInsH

    mov a,#30h
    acall LCDWrInsH

    mov a,#20h ;przelaczenie na interfejs 4-bitowy
    acall LCDWrInsH
    ;-----------------------------
    mov a,#20h OR (TypCzci SHL 2 ) OR ((ilLin AND 2) SHL 2)
    ;przelaczenie na interfejs 4-bitowy
    acall LCDWrIns

    mov a,#08
    acall LCDWrIns

    DspCtrl DspOn

    mov a,#4 OR (iniID SHL 1) OR iniS
    acall LCDWrIns

    ClrDsp
    ENDM
    ;-------------------------------------
    ProcWriteLCD MACRO
    LCDWrInsH: clr RS
    ajmp LCDWriteH
    ;-------------------
    LCDWrIns: clr RS
    sjmp LCDWrite
    ;-------------------
    LCDWrDat: setb RS
    ;--------------------
    LCDWrite:
    acall WriteLCD
    LCDWriteH:
    acall WriteLCD
    LCDWait: mov b,#TimeZwl
    djnz b,$
    ret
    WriteLCD:
    rlc a
    mov DB7,c
    rlc a
    mov DB6,c
    rlc a
    mov DB5,c
    rlc a
    mov DB4,c
    clr E
    setb E
    ret
    ENDM

    0
  • #14 28 Sie 2004 19:24
    gossc
    Poziom 10  

    To dal mnie zbyt zawile! Ja napialem cos takiego jak ponizej wg specyfikacji sterownika z pdefa (oczywoscie nie dziala):

    DANE EQU P3
    E EQU P0.7
    RW EQU P0.6
    RS EQU P0.5

    LCALL INIT_LCD


    DELAY_MS:
    DJNZ DPL,DELAY_MS
    DJNZ DPH,DELAY_MS
    RET

    DELAY_US:
    DJNZ ACC,DELAY_US
    RET

    ZAPIS_KOMENDY:
    CLR RW
    CLR RS
    SETB E
    CLR E
    RET

    INIT_LCD:
    CLR E
    CLR RW
    CLR RS
    MOV P3,#0h

    MOV DPTR,#04000h ;czekaj okolo 50ms
    CALL DELAY_MS

    MOV P3,#03Ch ;function set
    CALL ZAPIS_KOMENDY
    MOV ACC,#010h ;czekaj okolo 60us
    CALL DELAY_US

    MOV P3,#0Fh ;display control
    CALL ZAPIS_KOMENDY
    MOV DPTR,#010h ;czekaj okolo 60us
    CALL DELAY_US

    MOV P3,#01h ;display clear
    CALL ZAPIS_KOMENDY
    MOV DPTR,#01000h ;czekaj okolo 12ms
    CALL DELAY_MS

    MOV P3,#07h ;entry mode
    CALL ZAPIS_KOMENDY
    RET

    END


    Choc dzieja sie cuda.Czasem cos zaskoczy i pokazuja sie 2 liniach blade kwadraty. Raz pokazaly sie na calym ekranie "<", a pozniej zaczal migac kursor. Oczywiscie jak znaowu wgralem ten sam program to wrocilo do czarnych kwadratow w jednej linni.Jestem zirytowany na maxa!!!!

    0
  • #15 28 Sie 2004 20:10
    Dexter77
    Poziom 28  

    Zupelnie inaczej masz podlaczenia. W pierwszym poscie napisales ze masz tak:
    Dane P1.0-P1.7
    RS-P0.3
    RW-P0.4
    E-P0.5
    A w tym przykladzie w ktorym podajesz wyzej jest tak :
    DANE EQU P3
    E EQU P0.7
    RW EQU P0.6
    RS EQU P0.5
    Nic dziwnego ze nie dziala bo nie ma prawa.
    Pozdro
    Dexter

    0
  • #16 28 Sie 2004 20:28
    gossc
    Poziom 10  

    Sprawdzalem wszystkie porty, akurat to jest wersja z P0 ( o dziwo na P0 cos sie zmienia), na innych zupelny brak zycia.

    0
  • #17 28 Sie 2004 20:38
    marmur99
    Poziom 17  

    Nie wiem jaką Ty masz wersję datasheeta hd44780, ale w mojej wersji na stronie 45 jest podana cała procedura.
    Przytoczę ją tutaj bo widzę, że uparcie nie chcesz się do niej zastosować.

    Power ON
    Wait 40ms
    RS=0; RW=0; DANE=0x30; CLOCK
    Wait> 4.1ms
    RS=0; RW=0; DANE=0x30; CLOCK
    Wait >100us
    RS=0; RW=0; DANE=0x30; CLOCK
    Wait kilkanaście us
    i tu się zaczynają dopiero ustawienia czcionki, migania itp.

    Polecam raz jeszcze dokładnie sprawdzić instrukcje zawarte w datasheecie a potem robić eksperymenty.

    Marmur99

    0
  • #18 28 Sie 2004 21:06
    Dexter77
    Poziom 28  

    Port 0 wedlug dokumentacji jest portem z wyjsciem typu otwarty dren. Wpisanie wiec 1 kiedy port jest wyjsciem bez podciagniecia da nieokreslony rezultat.
    A nie rozumiem tez Twojej poprzedniej wypowiedzi. Zwrocilem Ci uwage ze definicje nozek w programie sie roznia od fizycznego podlaczenia ktore podales na poczatku. Ten przyklad bez wprowadzenia zmian + podlaczenie z 1 postu musi sie skonczyc niepowodzeniem.
    Pozdro
    Dexter

    0
  • #19 29 Sie 2004 14:17
    gossc
    Poziom 10  

    Jak juz pisalem podlaczalem wyswietlacz pod wszsytkie porty jakie mam(rozne konfiguracje), wgrywalem tez dwie wersje dla sterownika KS0066U i dla hd44780. Ponizej przedstawiam kod ktory napisalem dla sterownika hd44780 i mam prosbe. Czy moglby ktos wgrac go do swojego wyswietlacz i powiedzic mi, co sie u niego dzieje? (powinna nastapic inicjalizacja z miganiem kursora).

    DANE EQU P3
    E EQU P1.7
    RW EQU P1.6
    RS EQU P1.5

    LCALL INIT_LCD

    CHECK_BUSY:
    MOV P3,#0FFh
    SETB RW
    CLR RS
    REPLAY:
    SETB E
    MOV A,P3
    CLR E
    JB ACC.7,REPLAY
    RET


    DELAY_MS:
    DJNZ DPL,DELAY_MS
    DJNZ DPH,DELAY_MS
    RET

    ZAPIS_KOMENDY:
    CLR RW
    CLR RS
    SETB E
    CLR E
    RET

    INIT_LCD:
    CLR E

    MOV DPTR,#0FFFFh ;czekaj okolo 50ms
    CALL DELAY_MS

    MOV P3,#030h ;110000
    CALL ZAPIS_KOMENDY
    MOV DPTR,#0FFFFh ;czekaj okolo 100ms
    CALL DELAY_MS

    CALL ZAPIS_KOMENDY
    MOV DPTR,#0FFFFh ;czekaj okolo 100ms
    CALL DELAY_MS

    CALL ZAPIS_KOMENDY
    MOV DPTR,#0FFFFh ;czekaj okolo 100ms
    CALL DELAY_MS


    MOV P3,#38h ;8-bit interface, LCD 2*16
    CALL ZAPIS_KOMENDY
    CALL CHECK_BUSY

    MOV P3,#08h ;display off
    CALL ZAPIS_KOMENDY
    CALL CHECK_BUSY

    MOV P3,#01h ;display clear
    CALL ZAPIS_KOMENDY
    CALL CHECK_BUSY

    MOV P3,#06h ;autoinkrementacj polozenia kursora
    CALL ZAPIS_KOMENDY
    CALL CHECK_BUSY

    MOV P3,#0Fh ;display On
    CALL ZAPIS_KOMENDY

    RET

    END

    0
  • #20 29 Sie 2004 14:41
    gummis
    Poziom 15  

    po pierwsze robisz podstawowy blad poczatkujacego.Nigdy nie zmieniaj roznych konfiguracji.Np. ustal ktory port bedzie najlepsyz i tego sie trzymaj.Gdy masz dwie skuchy to poprawiasz jedna a druga masz dalej zle.Nie dziala.Stwierdzasz ze to nie to.Wracasz do poprzedniej koncepcji.
    Poprawisz druga skuche to znowu pierwsza jest dalej.Znowu nie dziala.
    i ciagle zmienasz konfiguracje roznych spraw, porty, metody sterowania, i rozne takie. Pomysl co sie dzieje jesli masz w ukladzie trzy skuchy.To juz masz kombinacje taka ze cos poprawisz i cos psujesz przy zmienianiu koncpecji.Zdecyduj sie na odpowiedni port.
    Nie rob tego na porcie gdzie nie ma pull-upow, albo zrob zewnetrzne.
    Dotyczy to zarowno lini sterujacych jak i danych.
    Kolejna sprawa nie podlaczaj R/W do portu tylko podlacz pod mase(ale wtedy nie bedziesz mogl sprawdzac flagi BUSY, ale jak sa dobrze odstepy czasowe porabione to jest ok
    No i stosuj sie do zalecen czasowych opisanych w dokumentacji.
    Nie ma sily to musi dzialac.

    0
  • #21 29 Sie 2004 15:38
    gossc
    Poziom 10  

    Chyba kupie nowy wyswietlacz, o ktorym bede wiedzial ze jest na pewno na sterowniku Hittachi. Dzieki za wszsytkie odpowiedzi. Mam jeszcze jedno pytanie, czy do wyswietlenie zanku moge zastosowac cos takiego:

    CHECK_BUSY:
    MOV DANE,#0FFh
    SETB RW
    CLR RS
    REPLAY:
    SETB E
    MOV A,DANE
    CLR E
    JB ACC.7,REPLAY
    RET

    WRITE_TEXT:
    CLR RW
    SETB RS
    SETB E
    CLR E
    LCALL CHECK_BUSY
    RET

    MOV DANE,#'H'
    LCALL WRITE_TEXT


    Czy moze najpierw musze znak ladowac do akumulatora?

    0
  • #22 29 Sie 2004 15:53
    gummis
    Poziom 15  

    mozesz bezposrednio ladowac stala do portu czyli poprawnie jest

    0
  • #23 29 Sie 2004 20:05
    elektryk
    Poziom 42  

    gossc napisał:
    "When the power is turned on, S6A0069 is initialized automatically by power on reset circuit. During the initialization,
    the following instructions are executed, and BF(Busy Flag) is kept "High"(busy state) to the end of initialization.
    (1) Display Clear instruction: Write "20H" to all DDRAM
    (2) Set Functions instruction
    DL = 1 : 8-bit bus mode
    N = 1 : 2-line display mode
    F = 0 : 5 X 8 font type
    (3) Control Display ON/OFF instruction
    D = 0 : Display OFF
    C = 0 : Cursor OFF
    B = 0 : Blink OFF
    (4) Set Entry Mode instruction
    I/D = 1 : Increment by 1
    SH = 0 : No entire display shift
    ...
    ...

    NIe wiem o co chodzi.Jest napisane, niby ze inicjalizuje się automatycznie, a pozniej pisza o jakichs bitach do wyboru?
    Oj nie, podali poprostu liste domyślnych parametrów po automatycznej inicjalizacji.

    0
  • #24 29 Sie 2004 22:02
    gossc
    Poziom 10  

    Wyswietlacz zaczal reagowac, ale musze przyciskac paraokrotnie reset zeby pojawil sie kursor. Swoja droga pojawia sie on w przypadkowych miejscach, dopiero po kilku znowu resetach wskakuje na lewy gorny rog. Jesli chce cos wyswietlic to japierw wypisuje krzaki, pozniej tekst ale tylko krotki (jak mowi po mozolnym prziskani reset). Tak jak pisalem wczesniej standardowa inicjalizacja jak dla hd44780 zupelnie nie dziala. Dziala tylko ta dla samsunga. Do tego nie raguje na pozostale komendy np. 0Ch albo 080h, byc moze specyfikacja samsunga jest inna, ale nic nie ma o tym w instrukcji.Po prosty firma powertrip sie nie postarala i wydala badziewie!

    0
  • #25 29 Sie 2004 22:10
    filip.jaskolski
    Poziom 14  

    Połączyłeś masę procesora i LCD? Mialem dokladnie ten sam problem. Dokładnie! ;) Rozwiązałem go połączeniem masy jednego i drugiego i poprawieniem programu. Przejżyj wszytko jeszcze raz, zastanów się - w końcu znajdziesz przyczynę ;).

    Pozdrawiam, FJ

    PS: Tak dla pocieszenia, to uruchomienie tego wyswietlacza, kosztowalo mnie 12 wieczorów nad książkami, programami itd...

    0
  • #26 29 Sie 2004 22:27
    Dexter77
    Poziom 28  

    Mozliwe tez ze jednak ten wyswietlacz ma inne parametry elektryczne. Potrzebne sa inne czasy pomiedzy zboczami. Standardowo impils na E powinien trwac 450ns. Jezeli procesor masz z kwarcem 24MHz to cykl maszynowy wynosi 500ns wiec prosty program typu "setb E" "clr E" powoduje ze impuls ma 500ns Moze Twoj wyswietlacz ma wolniejszy zegar i lubi czasy rzedu 1us co by tlumaczylo czemu raz lapie a raz nie. Sprobuj powstawiac instrukcje "nop" pomiedzy te dwie wyzej wymienione. Jezeli nie pomoze sprobuj powstawiac tez pomiedzy inne instrukcje.
    Pozdro
    Dexter

    0
  • #27 29 Sie 2004 22:29
    filip.jaskolski
    Poziom 14  

    Jeszcze jedno mi się przypomniało: daj jakieś opóźnienie na początku programu - napięcie musi dojść do siebie... Nie wiem na ile to ma wpływ, lecz w większości programów uwzględniali ten czas (parę Us)

    Pozdrawiam, FJ

    0
  • #28 29 Sie 2004 22:30
    gossc
    Poziom 10  

    To jest zestaw edukacyjny avt992, patrzylem na schemat i sa polaczone masy.Ja sie z nim mecze chyba od maja. Najpierw probowalem z tymi na sterownik Hittachi (wyswietlacz dostalem, niestety nikt mi nie powiedzial ze to co innego).Dziasiaj w koncu doszedlem,ze dziad reaguje na reset, al przeciez nie bede go wciskal po kilkanascie razy zeby zobaczyc glupi napis! Program sprawdzalem wielokrotnie, ,moze gdzie sjeszcze jakiegos nopa trzeba wstawic, ale watpie. Po prostutaki wyswietlacz!

    0
  • #29 30 Sie 2004 00:46
    gummis
    Poziom 15  

    gossc napisał:
    Po prostutaki wyswietlacz!


    Nie badz smieszny.sa rozne firmy .jedne wyswietlacze sa lepsze drugie gorsze.np. jeden jest bardziej aktywny drugi bardziej pasywny.ale nie ze nie chce dzialac.nikt nie dzilajacego wyswietlacza nie kupi, a firma produkujaca takie wyswietlacze szybko by zbankrutowala gdyby produkowala urzadzenia ktore nie do konca dzialaja.glowe sobie dam uciac ze masz cos nie tak.Juz sam fakt ze musisz kilka razy zresetowac procesor mowi ze masz cos nie tak.Napisales ze wysietlacz wymgaa kilka resetow procesora.Czy pomyslales co ty piszesz?Procesor to procesor., wyswietlacz to wyswietlacz.Zamiast zwalac na wyswietlacz powinienes sie zastanowic dlaczego tak sie dziaje ze jak kilka razy zresetujesz procka (czyli kilka razy wywolujesz procedure inicjujaca lcd)to wreszcie sie inicjuje lcd.Moze dzieje sie cos takiego:
    przy resecie linie portow ustawiaja sie na 1.
    w ten sposob cos sie tam zapisuje, i wreszcie za ktoryms razem wyswietlacz sie uruchamia.Sproboj powstawiac nopy miedzy dyganiem stanami pinow.Nie zwalaj na wyswietlacz bo tak jest najlatwiej.

    0
  • #30 30 Sie 2004 08:46
    filip.jaskolski
    Poziom 14  

    Sorka że tak w kilku postach, ale co chwilę coś mi się przypomina - też miałem taki problem, że po kilku resetach się budził. Jest ważna kwestia opóźnień, w inicjalizacji musisz wysłać 3 razy taką samą komendę i nie możesz używać check busy. Zgadzam się z przedmówcą, musisz gruntownie wszystko sprawdzić, a nie użalać się, że nie działa.

    Pozdrawiam, FJ

    0