Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
04/21/10 03:46
Modified:
  04/21/10 05:37

Read: times


 
#175195 - Need For A Buffer With GLCD
Responding to: ???'s previous message
A buffer can be very handy when using a graphics LCD module. However there are few instances where this is not necessary.

The main reason to use a buffer is where it is necessary to read back a part of the already composed pixel image to merge in a new part. Say you are writing 9x7 character glyphs to the display. Such glyphs will require you pack part of the font item bitmap into bytes that already may contain parts of other adjacent glyphs. Using a buffer allows this type of operation to take place with a series of read/mask/merge/write operations to the image buffer. If the buffer is in the MCU memory space you can then have the benefit of fairly fast random access to the image to perform these operations. Once a whole message is composed to the buffer you can use very efficient code with tight loops to fast copy the buffer to the GLCD controller. The loops can be fast because you can set page and row registers once inside the GLCD controller and take advantage of the controller's internal auto-increment feature to point to the next storage location after each write.

Sometimes when speed is less of an issue, and if you are using a parallel bus interface to the GLCD, then you can eliminate the use of the buffer by reading out the existing image bytes from the controller memory and then perform the mask/merge/write of the info back into the GLCD memory. For almost all GLCD controllers this type of operation is much much slower because of the need to keep sending commands to the GLCD to position the internal memory pointer to the correct location for the next access address. Plan for screen updates to be 5 to 10 times slower using this scheme over using the buffer scheme.

Another implementation where a buffer is essential is in the case for GLCD modules that have been implemented with low pin count flex cables and this require a serial interface. Most of the GLCDs that I've worked with that operate in a SPI-like serial mode only support write data transfers to the display controller. In these cases then the buffer is needed so that you can perform the read/mask/merge/write operations.

The read/mask/merge/write operation is also an important operation for supporting graphics primitives such as drawing lines and boxes or supporting inverting an existing image over or near to where other graphic elements have already been written.

The only case that I have seen where you can realistically get by without a buffer for the GLCD is when you utilize a fixed pitch font that you can map to even byte boundaries in the GLCD image on a fixed character cell mapping. Using this scheme you are also limited to drawing boxes by using "box drawing characters" in your font table. I can assure you though that using this type system with small 8x8 or 8x6 character character cells can lead to rather ugly looking screen displays!!

Michael Karas


List of 23 messages in thread
TopicAuthorDate
nothing displayed on graphical lcd using P89V51rd2.            01/01/70 00:00      
   Try to adjust contrast            01/01/70 00:00      
   About The Bus Twist            01/01/70 00:00      
   Start Extremely Simple            01/01/70 00:00      
      But how will i know that data is getting written to the vari            01/01/70 00:00      
         read it            01/01/70 00:00      
         read it !!            01/01/70 00:00      
            RE: registers that may be read/write            01/01/70 00:00      
         Try the text mode            01/01/70 00:00      
            That could be step 2            01/01/70 00:00      
               no text mode            01/01/70 00:00      
   more on contrast            01/01/70 00:00      
      signals            01/01/70 00:00      
         Success!            01/01/70 00:00      
            work to do            01/01/70 00:00      
               i agree            01/01/70 00:00      
                  one more doubt            01/01/70 00:00      
                     an easier alternative            01/01/70 00:00      
                     Isn't this a question to the mentor?            01/01/70 00:00      
                     Need For A Buffer With GLCD            01/01/70 00:00      
                        dot line buffer            01/01/70 00:00      
            nothing displayed on graphical lcd using P89V51rd2            01/01/70 00:00      
   Thanks            01/01/70 00:00      

Back to Subject List