Fórum témák
» Több friss téma |
Koszi !Mindjart kiprobalom!
Mar belefaradtam ![]() ![]()
Hello!
Az adatlap alapjan ujrairva a driver init reszet,es az otletedet hasznalva, 8 char kiirasa utan atallitom a DDRAM cimet C0H -ra,majd folytatom a kiirast.Igy tokeletesen mukodik! Koszonom! Modik: ha lehetseges pontot kernek mspike -nak!
Én adtam neki, mert ő szerény volt, nem mert magának venni.
![]() ![]() én nem kapok? ![]()
HEllo.
Ujra lenne egy kerdesem hozzatok. CGRAM-ba szeretnek nehany sajat karaktert beirni.A beiras modszer elmeletben meg is van..Olvastam Topi cikkjet ahol ezt irja errol: Idézet: „Összesen 8 karaktert írhatsz be, amik aztán bekerülnek a karakterkészletbe, és ugyanúgy hívhatók első mint a többi karakter.” Igen am,de en a "tobbi karakter" -t ugy hivom elo,hogy egyszeruen kiirom az adott karaktert. (4 bites modban,eloszor Hnibble, utanna Lnibble formaban.) Na de ebben az esetben hogy kell? Ugy tudom hogy az ascii -ja kell,na de az elmentett karaktereknek mi lesz az ascii-ja?,mivel ha jol emlekszem a sajat karakter 8* kuldott 8 (max5) bites adat. koszi!
Nem az ASCII kódját küldőd hanem a CGRAM egy elemére mutató címet.
Tehát ha a saját karakteredet szeretnéd előhivni akkor azt a 8 bites mutatót kell elküldeni ami mutató hivatkozik a CGRAM-ban definiált saját karakterre.
Nem egeszen ertem..
Van egy rutin ami a DDRAM -ba ir -ha jol emlekszem-, igy jelenik meg egy karakter.Namost ennek a rutinnak kell atadni az emlitett cimet,vagy mas rutin kell? Sok verizot kiprobaltam de nem megy ![]() A karakterkeszletben levo karaktert igy irom ki: void lcd_putch (uint8_t data) { uint8_t temp; temp = (data >> 4); //temp -be felso 4bit temp |= (1 << LCD_RS); //adatkuldes bekapcs LCD_PORT = temp; //kiirjuk toggle_E (); //LCD vegrehajtja temp = (data & 0x0F); //temp -be also 4BIT; felso 4bit nullazva temp |= (1 << LCD_RS); //adatkuldes bekapcs LCD_PORT = temp; toggle_E (); // lcd_delay(43); //wait } A CGRAM -cimenek beallitasa: set_CGRAM_addr (uint8_t data) { LCD_PORT = 0x00; toggle_E (); //LCD_PORT = (1 << LCD_DB6); //CGRAM addr. //toggle_E (); //clr uint8_t temp; temp = (1 << LCD_DB6); //set CGRAM addr command. temp |= (data >> 4); //CGRAM addr. upper nibble LCD_PORT = temp; toggle_E (); //send LCD_PORT = (data & 0x0F); //CGRAM addr. lower nibble toggle_E (); //send lcd_delay (1); } Aztan 8 byte kiirasa CGRAMba: .................. for (i = 0; i < 8; i++) { set_CGRAM_addr (i); lcd_putch(tomb[i]); //8 byte kiirasa } Tovabb hogy kell? ![]() Sosem lesz nekem vilagos ez az LCD mukodes ![]() >>>
Én csak pic ASM-ül értek.
Ha az LCD-s cikk alapján készítetted el a kodót akkor szerintem jónak kéne lennie...
Röviden szólva az lcd egyénileg definiált karakterek kezeléséről:
1. lépés: kiadod a 0x40 parancsot (karakter a 0x00 címre kerül a CGRAM-ban) 2. lépés: sorról sorra kiadod a karaktereid pixeleit (parancsként) soronként fentről lefelé haladva (csak az alsó 5 bit számít) 3. lépés kiiratod a karaktert. Remélem menni fog! Üdv. deguss
Nem tudom, hogy állsz ? De igazából a kérdésedre a válasz: az első nyolc karakter lesz amit a ramba teszel, tehát egyszerűen kiírsz egy 0x00 karaktert az lesz aszem az első, de lehet, hogy a 0x01 és így tovább 0x02;0x03...stb. Remélem így érthető...
Nekem is lenne egy kis problémám. Adott egy digitális mérleg, aminek eltört a folyadékkristályos kijelzője. Arra gondoltam, hogy valahogy helyettesíteném hétszegmenses kijelzőkkel. 4 digit volt rajta és néhány jel a mértékegység, és az elem állapotára vonatkozólag. A gond az lenne, hogy hogyan tudnám legegyszerűbben megtalálni, hogy melyik érintkező mit szolgált?
Idézet: „2. lépés: sorról sorra kiadod a karaktereid pixeleit (parancsként) soronként fentről lefelé haladva (csak az alsó 5 bit számít)” Ezt ugy erted hogy a 0x40 es hozzamaszkolva (OR) a pixelek es soronkent kuldve?En adatkent kuldtem a cimbeallitas utan.De az sem vilagos,hogy automatikusan no a cim iraskor,vagy novelni kell azt.. Koszi mindenkinek,probalkozom. Ennyit semmivel nem kinlodtam meg. ![]()
Szerintem keszits rola egy kepet, es /vagy ird le a tipusat,majd valaki tud segiteni,de egyszerubb ha LCD -re kicsereled.
Az oké, hogy hogy adsz ki parancsot, és hogy adatot?
Először egy 0x40 parancsként. Ha megengeded, egy rövid asm részlettel szemléltetem egy magyar "á" betű felvételét a memóriába.
Ok,en ezt ertem..de honnan tudjam hogy mi az a inst, es az lcd_out,mondjuk az utobbit sejtem.
Probalom megfejteni,ha nem jo szoljal ![]() A 6. bit 1 -ben van mindig(lcd pb6) ez a CGRAM -cim beallitas parancs. A tobbi meg maga a karakter kod. az inst valami olyasmi hogy lcd adatportra kikuldi az adatokat. az lcs_out meg a toggle_e, igy van? En is hasonloan csinaltam,csak en 2X4 bit formaban kuldom el. NEM MUKODIK ![]() ![]() ![]() ![]() ![]()
Hali!
Ha nem tévedek, akkor a következőket jelenti a 2 dolog, amiket írtál: call ints = meghívja az "inst" rutint, ami valószínűleg azt fogja az LCD-vel tadatni, hogy egy parancs, vagyis utasítás lett betöltve call lcd_out = LCD-re való kiírást jelenti (a betöltött adat kiírása az LCD-re) Azt sejtem, hogy ezeket jelentik a fentiek ![]()
En nem a kodra vagyok kivancsi,hanem a megoldasra,lekodolni en is le tudom c/asm!
Valaki irja le nekem ezt a folyamatot pszeudoban legyszi.A karakter letrehozast ertem,de tovabb nem .
Vegre sikerul megirni a sajat karakterek megjeleniteset is avr-re Ennyivel bovult a sajat lcd driverem
![]() Ha valakit majd erdekel szivesen elkuldom.
Sziasztok!
Írtam 1 kis programocskát, ami megkönnyíti a az LCD CGRAMjába történő egyéni karakterbeírást. Úgy gondoltam, hogy itt közzéteszem hátha tetszik valakinek és hasznára lesz a progizásban. ![]()
Tényleg az!
![]() Gratula! ![]() Ée persze mindannyiunk nevében köszönöm!!! ![]() ![]() ![]()
Ha valaki nem ismerne: lcd-charcalc
A lap aljan is erdemes megnezni a linkeket.
Sziasztok.
Beszereztem nehany regebbi tipusu kijelzot,es szuksege van -x voltra a contrasthoz,mert testre kotve nagyon halvanyan jelennek meg a karakterek. +5 V rol taplalom. HOgy lehet a legegyszerubben eloallitani negativ feszultseget +5V -bol? Minden segitseget koszonok.
Koszi.
Sajna az oldalon a link nem mukodott... letoltottem a kepeket,nezegetem... Azt hittem egyszerubben is lehet ![]()
Sziasztok!
Nemrég vásároltam egy 64128G típusú lcd kijelzőt, a dekóder IC rajta (S6B1713->KS0713 kompatibilis), sikerült letöltenem az adatlapját is ![]() ![]() A segítségeteket előre is köszönöm! ![]() Üdv: Pavel ![]() |
Bejelentkezés
Hirdetés |