T6963 / RA6963 LCD controller with PBP


Closed Thread
Results 1 to 24 of 24

Hybrid View

  1. #1
    Join Date
    Oct 2005
    Location
    Sweden
    Posts
    3,529


    Did you find this post helpful? Yes | No

    Default Re: T6963 / RA6963 LCD controller with PBP

    rmteo,
    Well, I wouldn't call myself a developer but yes, I write some code from time to time. If you follow this forum I think you'll find that I usually don't ask for much compared to what I give so I definitely don't expect to be "spoon fed all the time".

    My tongue-in-cheek reply was aimed at the fact that I wonder exacly what that latest post of yours was supposed to do? It doesn't help me or anyone else one single bit that you've done it if you don't want to share how - as I said I already KNOW it can be done so seeing yet another photo of a GLCD really doesn't help. And the rest about other displays, which I guess are used other microcontrollers and other compilers and RTOS'es doesn't help much either but thanks anyway.

    Thanks again for the Swordfish link though, that helps!


    Mark,
    Thanks a bunch, that helps as well!
    I've seen Mike and Ranjits site several times yet I didn't remember to check it now that I needed it.

    A little more time with Google though dug up this Hitatchi app note on the T6963 filling in a couple of gaps in the datahsheet.

    /Henrik.

  2. #2
    Join Date
    Aug 2005
    Posts
    95


    Did you find this post helpful? Yes | No

    Default Re: T6963 / RA6963 LCD controller with PBP

    You can try this. This was made for a 240x64 T6963 display but it might work with yours. Ive added the ports your display uses. You will have to set you config bits and osc speed for the pic. Its the best I could do for you.

    Hope it helps Sphere.

    Code:
    FONTSELECT VAR PORTJ.6'SET FONT SIZE PIN
    MD VAR PORTJ.5'I THINK THIS IS FOR SELECTING THE HALF OF DISPLAY TO WRITE TO
    RESET VAR PORTJ.4'RESET PIN
    CS VAR PORTJ.3'CHIP SELECT PIN
    WR VAR PORTJ.2'WRITE PIN
    RD VAR PORTJ.1'READ PIN
    CD VAR PORTJ.0'COMMAND DATA PIN
    DATAOUT VAR PORTH 'DATA PORT
    B0 VAR WORD
    
    HIGH RESET
    HIGH CS'ENABLE WRITE MODE
    LOW CD'SET TO DATA MODE
    HIGH WR'SET WRITE PIN TO HIGH
    HIGH RD'SET READ PIN TO HIGH
    HIGH FONTSELECT'SET FONT SIZE
    HIGH MD'I THINK THIS IS FOR SELECTING THE HALF OF DISPLAY TO WRITE TO
    
    PAUSE 1000
    
    PULSOUT RESET,1 :PAUSE 1000
    CD=1:DATAOUT=$80:PAUSEUS 1:CS=0:PULSOUT WR,1:CS=1:PAUSEUS 1:CD=0:PAUSEUS 1'MODE SET
    CD=1:DATAOUT=$94:PAUSEUS 1:CS=0:PULSOUT WR,1:CS=1:PAUSEUS 1:CD=0:PAUSEUS 1'DISPLAY ON IN TEXT ONLY MODE
    
    PAUSE 1000
    
    CD=0:DATAOUT=$00:PAUSEUS 2:CS=0:PULSOUT WR,1:CS=1:PAUSEUS 2:CD=0:PAUSEUS 2'LSB
    CD=0:DATAOUT=$10:PAUSEUS 2:CS=0:PULSOUT WR,1:CS=1:PAUSEUS 2:CD=0:PAUSEUS 2'MSB
    CD=1:DATAOUT=$42:PAUSEUS 2:CS=0:PULSOUT WR,1:CS=1:PAUSEUS 2:CD=0:PAUSEUS 2'GRAPHIC HOME ADDRESS
    
    CD=0:DATAOUT=$28:PAUSEUS 2:CS=0:PULSOUT WR,1:CS=1:PAUSEUS 2:CD=0:PAUSEUS 2'LSB
    CD=0:DATAOUT=$00:PAUSEUS 2:CS=0:PULSOUT WR,1:CS=1:PAUSEUS 2:CD=0:PAUSEUS 2'MSB
    CD=1:DATAOUT=$43:PAUSEUS 2:CS=0:PULSOUT WR,1:CS=1:PAUSEUS 2:CD=0:PAUSEUS 2'GRAPHIC AREA SET COMMAND
    
    CD=0:DATAOUT=$00:PAUSEUS 2:CS=0:PULSOUT WR,1:CS=1:PAUSEUS 2:CD=0:PAUSEUS 2'LSB
    CD=0:DATAOUT=$00:PAUSEUS 2:CS=0:PULSOUT WR,1:CS=1:PAUSEUS 2:CD=0:PAUSEUS 2'MSB
    CD=1:DATAOUT=$40:PAUSEUS 2:CS=0:PULSOUT WR,1:CS=1:PAUSEUS 2:CD=0:PAUSEUS 2'TEXT HOME ADDRESS
    
    CD=0:DATAOUT=$28:PAUSEUS 2:CS=0:PULSOUT WR,1:CS=1:PAUSEUS 2:CD=0:PAUSEUS 2'LSB
    CD=0:DATAOUT=$00:PAUSEUS 2:CS=0:PULSOUT WR,1:CS=1:PAUSEUS 2:CD=0:PAUSEUS 2'MSB
    CD=1:DATAOUT=$41:PAUSEUS 2:CS=0:PULSOUT WR,1:CS=1:PAUSEUS 2:CD=0:PAUSEUS 2'TEXT AREA SET COMMAND
    
    PAUSE 1000
    GOSUB CLEARSCREEN
    PAUSE 1000
    
    'WRITE HELLO START OF LINE 1
    CD=0:DATAOUT=$00:PAUSEUS 2:CS=0:PULSOUT WR,1:CS=1:PAUSEUS 2:CD=0:PAUSEUS 2'LSB
    CD=0:DATAOUT=$00:PAUSEUS 2:CS=0:PULSOUT WR,1:CS=1:PAUSEUS 2:CD=0:PAUSEUS 2'MSB
    CD=1:DATAOUT=$24:PAUSEUS 2:CS=0:PULSOUT WR,1:CS=1:PAUSEUS 2:CD=0:PAUSEUS 2'TEXT POINTER SET(SETS WHERE TEXT IS TO START WRITING ON SCREEN)
    CD=0:DATAOUT=$28:PAUSEUS 2:CS=0:PULSOUT WR,1:CS=1:PAUSEUS 2:CD=0:PAUSEUS 2'LETTER H
    CD=1:DATAOUT=$C0:PAUSEUS 2:CS=0:PULSOUT WR,1:CS=1:PAUSEUS 2:CD=0:PAUSEUS 2'DATA INCREMENT
    CD=0:DATAOUT=$25:PAUSEUS 2:CS=0:PULSOUT WR,1:CS=1:PAUSEUS 2:CD=0:PAUSEUS 2'LETTER E
    CD=1:DATAOUT=$C0:PAUSEUS 2:CS=0:PULSOUT WR,1:CS=1:PAUSEUS 2:CD=0:PAUSEUS 2'DATA INCREMENT
    CD=0:DATAOUT=$2C:PAUSEUS 2:CS=0:PULSOUT WR,1:CS=1:PAUSEUS 2:CD=0:PAUSEUS 2'LETTER L
    CD=1:DATAOUT=$C0:PAUSEUS 2:CS=0:PULSOUT WR,1:CS=1:PAUSEUS 2:CD=0:PAUSEUS 2'DATA INCREMENT
    CD=0:DATAOUT=$2C:PAUSEUS 2:CS=0:PULSOUT WR,1:CS=1:PAUSEUS 2:CD=0:PAUSEUS 2'LETTER L
    CD=1:DATAOUT=$C0:PAUSEUS 2:CS=0:PULSOUT WR,1:CS=1:PAUSEUS 2:CD=0:PAUSEUS 2'DATA INCREMENT
    CD=0:DATAOUT=$2F:PAUSEUS 2:CS=0:PULSOUT WR,1:CS=1:PAUSEUS 2:CD=0:PAUSEUS 2'LETTER O
    CD=1:DATAOUT=$C0:PAUSEUS 2:CS=0:PULSOUT WR,1:CS=1:PAUSEUS 2:CD=0:PAUSEUS 2'DATA INCREMENT
    
    'WRITE WORLD START OF LINE 2
    CD=0:DATAOUT=$28:PAUSEUS 2:CS=0:PULSOUT WR,1:CS=1:PAUSEUS 2:CD=0:PAUSEUS 2'LSB
    CD=0:DATAOUT=$00:PAUSEUS 2:CS=0:PULSOUT WR,1:CS=1:PAUSEUS 2:CD=0:PAUSEUS 2'MSB
    CD=1:DATAOUT=$24:PAUSEUS 2:CS=0:PULSOUT WR,1:CS=1:PAUSEUS 2:CD=0:PAUSEUS 2'TEXT POINTER SET(SETS WHERE TEXT IS TO START WRITING ON SCREEN)
    CD=0:DATAOUT=$37:PAUSEUS 2:CS=0:PULSOUT WR,1:CS=1:PAUSEUS 2:CD=0:PAUSEUS 2'LETTER W
    CD=1:DATAOUT=$C0:PAUSEUS 2:CS=0:PULSOUT WR,1:CS=1:PAUSEUS 2:CD=0:PAUSEUS 2'DATA INCREMENT
    CD=0:DATAOUT=$2F:PAUSEUS 2:CS=0:PULSOUT WR,1:CS=1:PAUSEUS 2:CD=0:PAUSEUS 2'LETTER O
    CD=1:DATAOUT=$C0:PAUSEUS 2:CS=0:PULSOUT WR,1:CS=1:PAUSEUS 2:CD=0:PAUSEUS 2'DATA INCREMENT
    CD=0:DATAOUT=$32:PAUSEUS 2:CS=0:PULSOUT WR,1:CS=1:PAUSEUS 2:CD=0:PAUSEUS 2'LETTER R
    CD=1:DATAOUT=$C0:PAUSEUS 2:CS=0:PULSOUT WR,1:CS=1:PAUSEUS 2:CD=0:PAUSEUS 2'DATA INCREMENT
    CD=0:DATAOUT=$2C:PAUSEUS 2:CS=0:PULSOUT WR,1:CS=1:PAUSEUS 2:CD=0:PAUSEUS 2'LETTER L
    CD=1:DATAOUT=$C0:PAUSEUS 2:CS=0:PULSOUT WR,1:CS=1:PAUSEUS 2:CD=0:PAUSEUS 2'DATA INCREMENT
    CD=0:DATAOUT=$24:PAUSEUS 2:CS=0:PULSOUT WR,1:CS=1:PAUSEUS 2:CD=0:PAUSEUS 2'LETTER D
    CD=1:DATAOUT=$C0:PAUSEUS 2:CS=0:PULSOUT WR,1:CS=1:PAUSEUS 2:CD=0:PAUSEUS 2'DATA INCREMENT
    
    Q:
    GOTO Q
    
    CLEARSCREEN:
    CD=0:DATAOUT=$00:PAUSEUS 2:CS=0:PULSOUT WR,1:CS=1:PAUSEUS 2:CD=0:PAUSEUS 2'LSB
    CD=0:DATAOUT=$00:PAUSEUS 2:CS=0:PULSOUT WR,1:CS=1:PAUSEUS 2:CD=0:PAUSEUS 2'MSB
    CD=1:DATAOUT=$24:PAUSEUS 2:CS=0:PULSOUT WR,1:CS=1:PAUSEUS 2:CD=0:PAUSEUS 2'TEXT POINTER SET(SETS WHERE TEXT IS TO START WRITING ON SCREEN)
    FOR B0=0 TO 319
    CD=0:DATAOUT=$00:PAUSEUS 2:CS=0:PULSOUT WR,1:CS=1:PAUSEUS 2:CD=0:PAUSEUS 2'SEND A SPACE
    CD=1:DATAOUT=$C0:PAUSEUS 2:CS=0:PULSOUT WR,1:CS=1:PAUSEUS 2:CD=0:PAUSEUS 2'DATA INCREMENT
    NEXT B0
    RETURN

  3. #3
    Join Date
    Oct 2005
    Location
    Sweden
    Posts
    3,529


    Did you find this post helpful? Yes | No

    Default Re: T6963 / RA6963 LCD controller with PBP

    Thanks!
    I got it going today though, displaying text, but I'll use yours to get further ideas from.

    I'm still confused about how the physical resolution of the screen maps to "software resolution" and fontsize control etc. I'm playing with it as we speak so I'll figure it out - possibly.

    Thanks again for sharing!

    /Henrik.

  4. #4
    Join Date
    Nov 2003
    Location
    Greece
    Posts
    3,838


    1 out of 1 members found this post helpful. Did you find this post helpful? Yes | No

    Default Re: T6963 / RA6963 LCD controller with PBP

    The GLCD I think is a bit difficult subject. I tried once and left it for a later time.

    Every contribution is most welcome. And since Henrik has a 'Contributor' level it means that is a great giver. So post #7 is not very appropriate answer especially to Henrik. He deserved a better one. Or do not answer at all.

    Ioannis

  5. #5
    Join Date
    May 2007
    Posts
    604


    Did you find this post helpful? Yes | No

    Default Re: T6963 / RA6963 LCD controller with PBP

    Quote Originally Posted by Ioannis View Post
    ... So post #7 is not very appropriate answer especially to Henrik. He deserved a better one. Or do not answer at all.
    Really? I posted a link to another BASIC site that provided source code. Is only providing PBP source code considered a better one?

    Quote Originally Posted by Ioannis View Post
    The GLCD I think is a bit difficult subject. I tried once and left it for a later time.
    Perhaps here. As I said, I posted a link to another BASIC site where they developed a library/driver for T6963 as well as KS0108 GLCD's - they don't seem to have problems.
    Why pay for overpriced toys when you can have
    professional grade tools for FREE!!!

  6. #6
    Join Date
    Nov 2003
    Location
    Greece
    Posts
    3,838


    Did you find this post helpful? Yes | No

    Default Re: T6963 / RA6963 LCD controller with PBP

    Yes but you need a good understanding of that other basic lanquage...

    Ioannis

  7. #7
    Join Date
    May 2007
    Posts
    604


    Did you find this post helpful? Yes | No

    Default Re: T6963 / RA6963 LCD controller with PBP

    Quote Originally Posted by Ioannis View Post
    Yes but you need a good understanding of that other basic lanquage...

    Ioannis
    Agreed. And that is why I consider coding ability alone (particularly if you are limited to a single specific language) a pretty insignificant skill.
    Last edited by rmteo; - 19th November 2011 at 23:55.
    Why pay for overpriced toys when you can have
    professional grade tools for FREE!!!

Members who have read this thread : 0

You do not have permission to view the list of names.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts