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

Obsługa LCD w C++. Nie udaje się wypisać żadnego znaku na ekran.

macszur 22 Wrz 2006 07:16 1813 4
REKLAMA
  • #1 3044930
    macszur
    Poziom 11  
    Posty: 6
    Więc problem jest taki, że piszę program do obsługi tego lcd(hd44780, 2x16) i ciągle nie udało mi się wypisać żadnego znaku na ekran. Jedyne to wyczyścić ekran ale to też nie wiem czemu wyszło?
    Mój kod taki jest
    
    port.wyjscie(portLPT::DATA, 56);
    Sleep(1);
    port.wyjscie(portLPT::CONTROL, 10);
    Sleep(1);
    port.wyjscie(portLPT::CONTROL, 14);
    Sleep(1);
    port.wyjscie(portLPT::CONTROL, 10);
    Sleep(1);
    port.wyjscie(portLPT::CONTROL, 0);
    //port.wyjscie(portLPT::DATA, 0);
    port.wyjscie(portLPT::CONTROL, 10);
    

    tylko że jak wywalę ustawienie na Control wszędzie 0 to ekran się już nie czyści??!! Próbowałem ustawić zapalenie pinów według źródła programu stąd http://www.codeproject.com/csharp/cspplcds.asp. Niestety nie działa, nawet ten program nie działa z moim lcd. Jeszcze testowałem LCDsmartie i on rzeczywiście działa. Potem jeszcze znalazłem ten opis http://www.linuxfocus.org/Polish/September2002/article258.shtml ale nic prócz wychzyszczenia ekranu się nie udało ;( Nawet posunołem się do tego że na żywca zerżnołem(i przerobiłem odpowiednio) kod z tej strony http://www.doc.ic.ac.uk/~ih/doc/lcd/double_c/hd44780.h.html - też nic nie dało ;( Mój lcd jest podłączony według drugiego schematu na tej stronie https://www.elektroda.pl/rtvforum/topic565787.html" target="_blank" rel="nofollow noopener ugc" class="postlink inline" title="" > https://www.elektroda.pl/rtvforum/topic565787.html Miałem zajrzeć do jego źródła ale cholera jedyny Delphi jaki mam niechciał się zainstalować :cry: Dlatego bym prosił jakie piny wpierw odpalić, jakie potem i tym podobne dane.(jeśli można to w kodzie dziesiątkowym) Bo mam jeszcze parę .pdf'ów ale nic mi nie wychodzi.
    ps. najgorsze jest to że ten program miał być gotowy na dziś(piątek) ale niestety lcd polutowane i złożone dostałem dopiero wczoraj(czwartek)
  • REKLAMA
  • #2 3044982
    przemo.t
    Poziom 27  
    Posty: 994
    Pomógł: 79
    Ocena: 30
    Witam
    Piszesz w dziale dla mikrokontrolerow a w kodzie masz LPT i wspominasz o delphi. Czym chcesz w koncu wysterowac tego LCD? PC czy mikrokontrolerem? Jesli PC to sa gotowe kontrolki jesli Cie to interesuje szukaj na www.4programmers.net
  • REKLAMA
  • #3 3045662
    macszur
    Poziom 11  
    Posty: 6
    hmm chodzi mi o PC i program w c++ a wspomniałem o delphi dlatego że tamten inny program jest w delphi. A mnie chodzi po prostu o to w jakiej kolejności, jakie stany i jakie odstępy czasowe ustawić na LPT(bo jak to ustawić to wiem) aby ten LCD załapał. Mniejsza o to w jakim to języku będzie - ważne by miało na tyle czytelną pisownię - adres portu, wartość w systemie dziesiątkowym
  • REKLAMA
  • #4 3045685
    przemo.t
    Poziom 27  
    Posty: 994
    Pomógł: 79
    Ocena: 30
    No to jesli chodzi o komendy to wszytsko masz w dokumentacji sterownika na jakim jest wykonany LCD tu http://www.spelektroniikka.fi/kuvat/2x16lcdvalo.pdf#search=%22hd47780%22 strona 5.

    Adres portu to muszisz sobie sam znalezc w swoim systemie dla LPT1 jest to 378h. Nie wiem czy gdziekolwiek znajdziesz dane jakie nalezy wyslac na port w systemie dziesietnym, zawsze ejst podawane w hexadecymalnym lub tak jak w tej nocie aplikacyjnej jako stan kolejnych lini portu i tak radzilbym to sterowac, ustawiajac kolejne linie portu w odpowieni stan, chyba ze chcesz sobie przeliczac na dzieisetny.
  • #5 3048005
    macszur
    Poziom 11  
    Posty: 6
    hmm chyba mnie nie rozumiecie zabardzo
    ja znam tamte instrukcje, znam adres portu swojego(w końcu ten kod na samej górze jest mój) - problem polega na tym w jakiej kolejności je zadać, w jaki sposób potem wypisać tekst na ekran, ile czasu czekać miedzy instrukcjami? a w tym opisie niby coś tam jest ale nie widzę tam używania pinów RW, RS i E a gdzie indziej to mam(ale i tak nie działa)
REKLAMA