Page 1 of 1

GLCD Double Image

Posted: Tue Sep 23, 2014 9:49 am
by TonyR
Hi All,

Ive got the GLCD library going nicely except with one bug.

The screen of the display (KS0801 controller) seems to be divided in half, probably due to CS1 CS2 operation.

If I try to place text or a graphic such as a box on the screen it thinks that the X compoent of 0,0 is mid screen. Y works OK.

ie.

Code: Select all

GLCD.WriteAt(0,31,"Hello")
actually appears midscreen for X, not where x is 0. (its a 128 pixel screen). Y 31 is OK.

If I comment out the "Invert Chip Select" library directive I then get "hello" where x is 0 as well as where x is mid screen. Y is OK.

There seems to be something mixed up with the X position / chip select operation?

Advice welcome.

Code is below,

Thanks,

Tony R.

Code: Select all

Device = 18F87J93                    // select our device
Clock = 12
Config OSC = HS
                          
// User options
#Option GLCD_MODEL = KS0108         // GLCD driver    
#option GLCD_SCREEN_WIDTH = 128     // Screen Width in Pixels 
#option GLCD_SCREEN_HEIGHT = 64     // Screen Height in Pixels 
#Option GLCD_DATA = PORTD           // data port
#Option GLCD_RS  = PORTB.2          // RS pin
#Option GLCD_RW  = PORTB.1          // RW pin
#Option GLCD_EN  = PORTB.0          // EN pin
#Option GLCD_CS1 = PORTB.4          // chip select
#Option GLCD_CS2 = PORTC.4          // chip select
#Option GLCD_RST = PORTE.3          // reset pin
#Option GLCD_ASPECT_RATIO = 100     // aspect ratio, smaller number will squeeze y for GLCD circles and box 
#Option GLCD_INIT_DELAY = 50        // initialisation delay (ms) 
'#Option GLCD_INVERT_CS = true       // invert CS lines... 
 
Include "glcd.bas"           // main GLCD module
Include "graphics.bas"       // support for GLCD
Include "Bitmaps.bas"        // support for GLCD
Include "Arial.bas"          // ArialFont for GLCD


                             
TRISD = %00000000           // IO is on ports B D and E       
TRISB = %00000000                
TRISE = %00000000               

While true 
    GLCD.Cls                    
    DelayMS(1000)
    GLCD.SetFont(ArialBold)
    GLCD.WriteAt(0,31,"Hello")    ' hello is succesfully blinked but at x =0 and x = midscreen (64 I guess)
    DelayMS(1000)        
Wend


Re: GLCD Double Image

Posted: Tue Sep 23, 2014 8:44 pm
by TonyR
Further to my bug causing the GLCD to show two "hellos"

I checked the CS1 and CS2 lines, they are fine

Is the Library calculating 2 x 64 pixel wide screens instead of 1 x 128 pixel widescreen? Suggestions welcome

Here is what it looks like
[img]
"c:\hello on lcd.jpg"
[/img]

Re: GLCD Double Image

Posted: Tue Sep 23, 2014 8:49 pm
by TonyR
[img]
<img src="c:\lcd.jpg" alt="Hello on LCD" style="width:350px;height:250px">
[/img]

Re: GLCD Double Image

Posted: Thu Oct 09, 2014 11:39 pm
by bitfogav
I know this is a late reply and you might have fixed this issue?, I can't see the images that you have uploaded but I have had this issue before and it turned out to be my CS lines.. I just swapped the GLCD CS lines around (CS1 to CS2 etc), and that fixed it..

Try this from

Code: Select all

#Option GLCD_CS1 = PORTB.4          // chip select
#Option GLCD_CS2 = PORTC.4          // chip select
To

Code: Select all

#Option GLCD_CS1 = PORTC.4          // chip select
#Option GLCD_CS2 = PORTB.4          // chip select

Re: GLCD Double Image

Posted: Sat Nov 22, 2014 5:52 am
by TonyR
Thanks BitforGav, it was the CS lines. All good now.