Tak problem vyresen!!
kod je spravny, ale ja jak jsem si s tim hral a mel jsem 3 verze, tak header byl stale puvodni. pred chvilkou sem si toho vsilm, prepsal na 3 a jede to!!
mam taky to lcd a pokousim se ho rozjet v bascomu, zapnout ho dovedu ale zobrazit pixel a smazat ho tam kde chci se mi nedari...
co musim udelat kdyz chci zapsat treba pixel na souradnice (x , y) (10 , 20)
vyvod rst je trvale na +5v nejde pouzit knihovna z bascomu glcdks108.lib pac se dataport sklada ze dvou portu a navic nefacha na 16mhz s megou32.
dik za radu.
Displej je rozdělený na dvě poloviny, jsou v něm dva řadiče, jeden pro pravou půlku jeden pro levou. Při zápisu (čtení) dat a instrukcí je tedy potřeba rozhodnout, pro který řadič jsou a do toho řadiče je zapsat (přečíst). Jsou to tedy jakoby dva samostatné displeje 64x64bodů vedle sebe. Svisle jsou organizované jako 8 stránek (0 až 7) pod sebou, každá stránka je 8 řádek (64 řádek celkem). Vodorovně mají 64 sloupců (0 až 63). Číslo stránky se nastavuje instrukcí Set Page (X Address) binárně 10111PPPb, číslo sloupce instrukcí Set Address (Y Address) binárně 01YYYYYYb. Data se zapisují/čtou vždy po 8-bitech, které reprezentují 8 bodů pod sebou v nastavené stránce a aktuálním sloupci. Bod na pozici 20 vodorovně a 10 svisle (počítáno od nuly) tedy odpovídá sloupci 20, stránce 1, bitu 2. Po zapsání/přečtení dat se automaticky inkrementuje číslo sloupce. Před zápisem příkazů a čtením/zápisem dat je potřeba otestovat čtením statusu (Status Read), zda je displej schopný příkaz/data přijmout, případně počkat.
Displej má ještě jeden registr, Display Start Line, který říká, která řádka (0-63) je zobrazená jako první shora. Dá se tak posouvat obsah displeje nahoru nebo dolu bez nutnosti přesouvat všechna data v paměti displeje. Pokud je číslo počáteční řádky nenulové, je nutno tento posun připočítat při výše uvedeném výpočtu svislé pozice bodu na displeji.
tak jsem zde něco vytvořil, problém je že když chci zapsat pixel na souřadnici 0,0 zapíše se až na 1,0 a 63,0 se zapíše jako 0,0 to samé i na druhé polovině lcd neví někdo čím to může být asi to bude nějak souviset s automatickou inkrementací v ose x nebo tak něco...asi.
Dataport Alias Portc
Rs Alias Portd.1
Rw Alias Portd.2
E Alias Portd.3
Cs2 Alias Porta.3
Cs1 Alias Portd.6
'*******************************************************************************
'* Deklarace F-ce LCD **********************************************************
'*******************************************************************************
Declare Sub Ks_init()
Declare Sub Ks_cls(byval Cx As Byte)
Declare Sub Ks_pset(byval Lx As Byte , Byval Ly As Byte , Byval Lz As Byte)
'*******************************************************************************
'* Promenne ********************************************************************
'*******************************************************************************
Dim Horizontala As Byte 'posuv lcd
Dim A As Byte
'*******************************************************************************
'* Jina nastaveni **************************************************************
'*******************************************************************************
Horizontala = 192 ' 192 =0 pro posouvani obsahu lcd
'*******************************************************************************
'* Vlastni program *************************************************************
'*******************************************************************************
Call Ks_init()
Call Ks_cls(0)
Do
Call Ks_cls(0)
Wait 1
For A = 0 To 127 'nakresli horizontalni caru 0-127
Call Ks_pset(a , 10 , 1)
Waitms 10
Next
For A = 0 To 127 'smaze horizontalni caru 0-127
Call Ks_pset(a , 10 , 0)
Waitms 10
Next
'*******************************************************************************
'* Clear LCD fce KS_cls(x), x=1=invert *****************************************
'*******************************************************************************
Sub Ks_cls(cx As Byte)
Local Ccx As Byte , Ccy As Byte
If Cx = 0 Then
For Ccy = 0 To 7
Dataport = Ccy + 184
Gosub Ecko
Set Rs
For Ccx = 0 To 63
Dataport = 0
Gosub Ecko
Next
Reset Rs
Next
Else
For Ccy = 0 To 7
Dataport = Ccy + 184
Gosub Ecko
Set Rs
For Ccx = 0 To 63
Dataport = 255
Gosub Ecko
Next
Reset Rs
Next
End If
Reset Rs
Reset Cs1
Reset Cs2
End Sub
'*******************************************************************************
'* PIXEL SET fce KS_PSET *******************************************************
'*******************************************************************************
Sub Ks_pset(lx As Byte , Ly As Byte , Lz As Byte)
Local Ylcd As Byte , Lcdram As Byte , Stranka As Byte
Nikde nevidím, že bys testoval Busy flag. Ten posun je způsoben tím, že před zápisem čteš, i čtení posouvá adresu sloupce. Navíc při čtení je potřeba číst dvakrát (viz datašít).
Časy uváděny v GMT + 1 hodina Jdi na stránku Předchozí1, 2
Strana 2 z 2
Nemůžete odesílat nové téma do tohoto fóra. Nemůžete odpovídat na témata v tomto fóru. Nemůžete upravovat své příspěvky v tomto fóru. Nemůžete mazat své příspěvky v tomto fóru. Nemůžete hlasovat v tomto fóru. Nemůžete připojovat soubory k příspěvkům Můžete stahovat a prohlížet přiložené soubory
Informace na portálu Elektro bastlírny jsou prezentovány za účelem vzdělání čtenářů a rozšíření zájmu o elektroniku. Autoři článků na serveru neberou žádnou zodpovědnost za škody vzniklé těmito zapojeními. Rovněž neberou žádnou odpovědnost za případnou újmu na zdraví vzniklou úrazem elektrickým proudem. Autoři a správci těchto stránek nepřejímají záruku za správnost zveřejněných materiálů. Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Použití konstrukcí v rozporu se zákonem je přísně zakázáno. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tento nekomerční server nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ. V případě, že zjistíte porušení autorského práva či jiné nesrovnalosti, kontaktujte administrátory na diskuzním fóru EB.