Arduino Mega ja T6963c

Hei!

Onko kenelläkään tietoa / kokemusta että miten näytön välkkymistä voisi vähentää kyseisellä kokoonpanolla?

-Arduino Mega
-240x128 lcd T6963c prossulla (BG240128B2-54)
-http://code.google.com/p/arduino-t6963c/wiki/T6963c kirjastolla

Eli tuntuu siltä kuin näytön enablointi ei toimisi. Demo-ohjelman kun ajaa niin se on pelkkää välkkymistä kun grafiikkaa piirretään. Muuten pelaa hyvin. Enablointi toimii kuitenkin (johto pois, näyttö jäätyy)

Ei tuo olio-ohjelmointi ole kovin tuttua täällä c:n puolella niin toinen kysymys:

Luon pääohjelmassa LCD-olion. Kuinka voin kutsua tätä oliota toisesta tiedostosta, vai voinko?
Tarkoitus kutsua valikot.c:stä
Kuvakaappaus.png

Sinun tarvitsee varmaankin tehdä valikot.h tiedosto kaveriksi valikot.c:lle(vai pitääkö olla valikot.cpp) ja includettaa sitä.

arduino.cc/en/Hacking/LibraryTutorial

Muuten kannattaa tarkistaa saako sillä näytöllä päälle tuota dual bufferointi moodia. Eli piiri piirtäis toiselta muistialueelta dataa näytölle ja toiselle vois ite piirtää MCU:lla ja sitte swapata noi.

Toi välkyntä yleensä johtuu siitä, kun samaa aluetta päivitetään MCU:lla ja piiri myöskin päivittää sitä näytölle.

Tuon verran itsekkin ymmärsin. :smiley: täytyy koittaa lukea tuota vielä oikeen ajatuksen kera, jos siitä aukeas sitten…

En ainakaan tuosta kirjastosta löydä mitään kohtaa, vaikka luulis että jos sellainen olis niin se olisi demo:ssa päällä… Kyseisestä näytöstä ei löydy oikeen mitään infoa googleltakaan. :angry:

Kattelin ton kirjaston koodin läpi, niin siinä ei ollut mitään viittausta tuohon dual bufferiin.

Tossa chipin datat
home.comet.bg/datasheets/LCD%20G … T6963c.pdf

Eli datalehden mukaan.
“Set Address Pointer” käskyllä määrätään mihin kohtaa muistia kirjoitetaan.
“Set Graphic Home Address” määrittää mistä kohtiilta aletaan grafiikkaa piirtää.

Arduino kirjastoa lukien
LCD.SetAddressPointer(GH2) // Minne kirjoitetaan Esim buffer2.
for(){
LCD.WriteDisplayData(data)} // Kirjoita alueelle

vaihta uus bufferi päälle
LCD.writeData(GH2 & 0xFF);
LCD.writeData(GH2 >> 8);
LCD.writeCommand(T6963_SET_GRAPHIC_HOME_ADDRESS);

vanha takasi
LCD.writeData(_GH & 0xFF);
LCD.writeData(_GH >> 8);
LCD.writeCommand(T6963_SET_GRAPHIC_HOME_ADDRESS);

Edit:
uuden bufferin voi laskea tähän tyyliin.
GH2 = LCD.getGH() + LCD.sizeGA