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

Wyświetlacz graficzny 128*64

werewolf15 20 Lis 2011 15:42 1585 4
REKLAMA
  • #1 10161055
    werewolf15
    Poziom 14  
    Kupiłem wyświetlacz 128*64 z sterownikiem ks108 podłączone wszystko według schematu otrzymanego wraz z wyświetlaczem.Wyświetlacz działa lecz zmienia faktyczne rozmieszczenie elementów wyświetlanych np: dzieli i przenosi napisy, dzieli obrazki, linie, koła, najczęściej dzieli pionowo wyświetlacz na pół i jedna połówka wyświetla się niżej a druga niżej albo wcale , czasami wyświetla coś sam z siebie.Testuję wyświetlacz na poniższym programie w którym ku zdziwieniu pierwsza pętla wyświetla idealnie a w kolejnych wszystko się sypie.Proszę o podpowiedź co robię nie tak.Z góry dziękuję za pomoc.

    Cytat:
    $lib "glcdKS108.lib"
    $hwstack = 32
    $swstack = 10
    $framesize = 40
    $crystal = 8000000
    $regfile = "m32def.dat"

    Config Porta = Input

    Config Portb = Output
    Portb = &B11111111

    Config Portc = Output
    Portc = &B11111111

    Config Portd = Output

    Config Graphlcd = 128 * 64sed , Dataport = Portb , Controlport = Portc , Ce = 0 , Ce2 = 1 , Cd = 4 , Rd = 3 , Reset = 2 , Enable = 5

    Setfont Font8x8

    Cls

    Do

    Cls
    Line(0 , 32) -(127 , 32) , 255
    Circle(64 , 32) , 20 , 255
    Line(64 , 0) -(64 , 63) , 255
    Wait 2

    Cls
    Locate 1 , 1
    Lcd "WELCOME"
    Wait 4

    Cls
    Showpic 0 , 0 , Smile
    Wait 2

    Loop
    End

    $include "font8x8.font"

    Smile:
    $bgf "smile.bgf"
  • REKLAMA
  • #2 10162574
    Tuxlab
    Poziom 13  
    Wyświetlacz składa się z dwóch połówek właściwie niezależnych (stąd dzielenie obrazu w pionie). Program jest obsługujący jest prawdopodobnie za wolny - nie trafia w okrślone przedziały czasowe na które oczekuje wyświetlacz, dlatego pierwsza linia wyświetla się w miarę dobrze, a inne już nie. Najlepiej kluczowe fragmenty programu napisać w kodzie. Należy też zastosować możliwie krótkie połączenie lub zastosować bufor z niskim oporem wyjściowym.

    pozdrowienia

    T
  • REKLAMA
  • #3 10163020
    werewolf15
    Poziom 14  
    Kolego Tuxlab czy mógłbyś wyjaśnić trochę jaśniej o co chodzi z tym pisaniem kodem, "możliwie krótkie połączenie" - jeśli chodzi o kabel to połączone jest wielożyłowym ponad 3m i o jaki bufor chodzi.Będę bardzo wdzięczny ;)
    Cytat:
    Najlepiej kluczowe fragmenty programu napisać w kodzie. Należy też zastosować możliwie krótkie połączenie lub zastosować bufor z niskim oporem wyjściowym.


    A tak pozatym to dlaczego jak ustawię inny rezonator w fusebitach niż int.osc. 4mhz to wyświetlacz warjuje?Oczywiście w programie też zmieniam wartość $regfile.Programuje w Bascom AVR
  • REKLAMA
  • #4 10163317
    Tuxlab
    Poziom 13  
    Przyśpieszenie działania programu a zwiększenie prędkości procesora to nie to samo gdyż program jest napisany w języku wysokiego poziomu (jeden rozkaz składa się z kilku lub kiludziesięciu prostszych rozkazów procesora). Domyślam się, że wyswietlacz jest sterowany bezpośrednio z portu można zastosować bufor np. 74LS540. Uważam, że 3 metrowa wiązka jest stanowczo za długa. Proponuję próbować na mniejszej długości np. 20 cm i stopniowo zwiększać długość.

    pozdrowienia
    T
  • #5 10171162
    werewolf15
    Poziom 14  
    Okazało się że kabel między prockiem a lcd był jednak za długi.Teraz po skróceniu kabla wszystko działa jak należy.Mam jeszcze takie pytanie, czy jest jakiś program do tworzenia obrazków .bgf?I czy może ktoś wie jak da się zaprogramować w bascomie "pasek ładowania"?
REKLAMA