PDA

View Full Version : Text output to graphic LCD



SlotH
- 18th August 2006, 15:01
Hi I'm working on a little project, but I ran in to a little problem that I dont seem to be able to solve.
I want to be able to write text on my graphic LCD (KS0108B circuit) without using to much of the memory.

I was hoping to create something similar to the LCDout function.
For example: LCDout "IE"

I'm using this config for the datapins:

MCU--------LCD
portd.0 = pin7 (DB0)
portd.1 = pin8 (DB1)
portd.2 = pin9 (DB2)
portd.3 = pin10 (DB3)
portd.4 = pin11 (DB4)
portd.5 = pin12 (DB5)
portd.6 = pin13 (DB6)
portd.7 = pin14 (DB7)

portb.2 = pin6 (Enable)

So the letter "I" for example would be:
PORTD = %11111111
PORTB.2 = 1 ' Enable activated
Pauseus 1
PORTB.2 = 0 ' Enable deactivated

and the letter "E" would be:
PORTD = %11111111
PORTB.2 = 1 ' Enable activated
Pauseus 1
PORTB.2 = 0 ' Enable deactivated
PORTD = %10001001
PORTB.2 = 1 ' Enable activated
Pauseus 1
PORTB.2 = 0 ' Enable deactivated
PORTD = %10001001
PORTB.2 = 1 ' Enable activated
Pauseus 1
PORTB.2 = 0 ' Enable deactivated
PORTD = %10001001
PORTB.2 = 1 ' Enable activated
Pauseus 1
PORTB.2 = 0 ' Enable deactivated
PORTD = %10001001
PORTB.2 = 1 ' Enable activated
Pauseus 1
PORTB.2 = 0 ' Enable deactivated

And so on...
The only problem is that I dont know how to divide a string into seperate letters.
So If anyone has the answer please answer, and If you don't understand what the heck I'm talking about please let me know and perhaps I can explain a little better.

rhino
- 18th August 2006, 20:20
Not sure how you could do it without using gobs of memory other than using external memory like eeprom or FRAM. Maybe you could put the word into an array and use a lookup on the external memory to give you the binary pattern for each letter in the word? Sure there are better ways of doing it. I'd be interested in seeing what others from the forum come up with. I've always been interested in playing around with these glcds, but have never got one to mess around with.

Archangel
- 19th August 2006, 01:39
And so on...
The only problem is that I dont know how to divide a string into seperate letters.
So If anyone has the answer please answer, and If you don't understand what the heck I'm talking about please let me know and perhaps I can explain a little better.

You are talking way over my head, but I did find a discussion group at the following link and they had a datasheet on that display. They may be able to assist you.
http://www.crystalfontz.com/forum/showthread.php?p=#post

Dave
- 19th August 2006, 14:48
SlotH, Here is a subroutine I wrote for a display some years ago. It is a lookup table for a 5x8 display which I decoded for 5x7. You simply pass the character in ascii equiv. to the routine and it will generate the appropriate collum data with the collum(0) byte being the left most collum and the msb of each collum byte being the bottom most pixel. I have also incorporated your code into the routine for you.

STROBE VAR PORTB.2
CHARACTER VAR BYTE 'ASCII CHARACTER FOR DIGIT ENCODING
COLLUM VAR BYTE [5] 'OUTPUT COLLUM DATA ARRAY
INDEX VAR BYTE 'INDEX COUNTER FOR DISPLAY OUTPUT
' ************************************************** ******************
CHARTABL: 'CHARACTER LOOK-UP TABLE FOR COLLUMS
' ************************************************** ******************
IF CHARACTER > 31 THEN
' " ","!",""","#","$","%","&","'","(",")","*","+",",",
'"-",".","/","0","1","2","3","4","5","6","7","8","9",":",";","<","=",">","?",
'"@","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R",
'"S","T","U","V","W","X","Y","Z","[","\","]","^","_","`","a","b","c","d","e",
'"f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x",
'"y","z","{","|","}","~"]
COL1:
LOOKUP CHARACTER - 32,[$00,$00,$00,$14,$24,$23,$36,$00,$1C,$00,$14,$08,$0 0,_
$08,$00,$20,$3E,$00,$42,$21,$18,$27,$3C,$01,$36,$0 6,$00,$00,$08,$14,$00,$02,_
$32,$7E,$7F,$3E,$7F,$7F,$7F,$3E,$7F,$00,$20,$7F,$7 F,$7F,$7F,$3E,$7F,$3E,$7F,_
$46,$01,$3F,$1F,$3F,$63,$07,$61,$7F,$02,$00,$04,$4 0,$00,$20,$7f,$38,$38,$38,_
$08,$0c,$7f,$00,$00,$7f,$00,$7c,$7c,$38,$7c,$08,$7 c,$48,$04,$3c,$1c,$3c,$44,_
$0c,$44,$08,$00,$00,$00],COLLUM(0)
COL2:
LOOKUP CHARACTER - 32,[$00,$00,$07,$7F,$2A,$13,$49,$05,$22,$00,$08,$08,$5 0,_
$08,$60,$10,$51,$42,$61,$41,$14,$45,$4A,$71,$49,$4 9,$36,$56,$14,$14,$41,$01,_
$49,$11,$49,$41,$41,$49,$09,$41,$08,$41,$40,$08,$4 0,$02,$04,$41,$09,$41,$09,_
$49,$01,$40,$20,$40,$14,$08,$51,$41,$04,$00,$02,$4 0,$01,$54,$48,$44,$44,$54,_
$7E,$52,$08,$44,$20,$10,$41,$04,$08,$44,$14,$14,$0 8,$54,$3F,$40,$20,$40,$28,_
$50,$64,$36,$00,$00,$08],COLLUM(1)
COL3:
LOOKUP CHARACTER - 32,[$00,$4F,$00,$14,$7F,$08,$55,$03,$41,$41,$3E,$3E,$3 0,_
$08,$60,$08,$49,$7F,$51,$45,$12,$45,$49,$09,$49,$4 9,$36,$36,$22,$14,$22,$51,_
$79,$11,$49,$41,$41,$49,$09,$49,$08,$7F,$41,$14,$4 0,$0C,$08,$41,$09,$51,$19,_
$49,$7F,$40,$40,$38,$08,$70,$49,$41,$08,$41,$01,$4 0,$02,$54,$44,$44,$44,$54,_
$09,$52,$04,$7D,$40,$28,$7F,$18,$04,$44,$14,$14,$0 4,$54,$44,$40,$40,$30,$10,_
$50,$54,$41,$7F,$41,$04],COLLUM(2)
COL4:
LOOKUP CHARACTER - 32,[$00,$00,$07,$7F,$2A,$64,$22,$00,$00,$22,$08,$08,$0 0,_
$08,$00,$04,$45,$40,$49,$4B,$7F,$45,$49,$05,$49,$4 9,$00,$00,$41,$14,$14,$09,_
$41,$11,$49,$41,$22,$49,$09,$49,$08,$41,$3F,$22,$4 0,$02,$10,$41,$09,$21,$29,_
$49,$01,$40,$20,$40,$14,$08,$45,$00,$10,$41,$02,$4 0,$04,$54,$44,$44,$48,$54,_
$01,$52,$04,$40,$44,$44,$40,$04,$04,$44,$14,$18,$0 4,$54,$40,$20,$20,$40,$28,_
$50,$4C,$00,$00,$36,$08],COLLUM(3)
COL5:
LOOKUP CHARACTER - 32,[$00,$00,$00,$14,$12,$62,$50,$00,$00,$1C,$14,$08,$0 0,_
$08,$00,$02,$3E,$00,$46,$31,$10,$39,$30,$03,$36,$3 E,$00,$00,$00,$14,$08,$06,_
$3E,$7E,$36,$22,$1C,$41,$01,$7A,$7F,$00,$01,$41,$4 0,$7F,$7F,$3E,$06,$5E,$46,_
$31,$01,$3F,$1F,$3F,$63,$07,$43,$00,$20,$7F,$04,$4 0,$00,$78,$38,$20,$7F,$18,_
$02,$3E,$78,$00,$3D,$00,$00,$78,$78,$38,$08,$7C,$0 8,$20,$20,$7C,$1C,$3C,$44,_
$3C,$44,$00,$00,$08,$04],COLLUM(4)
ENDIF
' ************************************************** ******************
CHARTABL: 'CHARACTER LOOK-UP TABLE FOR COLLUMS
' ************************************************** ******************
IF CHARACTER > 31 THEN
' " ","!",""","#","$","%","&","'","(",")","*","+",",",
'"-",".","/","0","1","2","3","4","5","6","7","8","9",":",";","<","=",">","?",
'"@","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R",
'"S","T","U","V","W","X","Y","Z","[","\","]","^","_","`","a","b","c","d","e",
'"f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x",
'"y","z","{","|","}","~"]
COL1:
LOOKUP CHARACTER - 32,[$00,$00,$00,$14,$24,$23,$36,$00,$1C,$00,$14,$08,$0 0,_
$08,$00,$20,$3E,$00,$42,$21,$18,$27,$3C,$01,$36,$0 6,$00,$00,$08,$14,$00,$02,_
$32,$7E,$7F,$3E,$7F,$7F,$7F,$3E,$7F,$00,$20,$7F,$7 F,$7F,$7F,$3E,$7F,$3E,$7F,_
$46,$01,$3F,$1F,$3F,$63,$07,$61,$7F,$02,$00,$04,$4 0,$00,$20,$7f,$38,$38,$38,_
$08,$0c,$7f,$00,$00,$7f,$00,$7c,$7c,$38,$7c,$08,$7 c,$48,$04,$3c,$1c,$3c,$44,_
$0c,$44,$08,$00,$00,$00],COLLUM(0)
COL2:
LOOKUP CHARACTER - 32,[$00,$00,$07,$7F,$2A,$13,$49,$05,$22,$00,$08,$08,$5 0,_
$08,$60,$10,$51,$42,$61,$41,$14,$45,$4A,$71,$49,$4 9,$36,$56,$14,$14,$41,$01,_
$49,$11,$49,$41,$41,$49,$09,$41,$08,$41,$40,$08,$4 0,$02,$04,$41,$09,$41,$09,_
$49,$01,$40,$20,$40,$14,$08,$51,$41,$04,$00,$02,$4 0,$01,$54,$48,$44,$44,$54,_
$7E,$52,$08,$44,$20,$10,$41,$04,$08,$44,$14,$14,$0 8,$54,$3F,$40,$20,$40,$28,_
$50,$64,$36,$00,$00,$08],COLLUM(1)
COL3:
LOOKUP CHARACTER - 32,[$00,$4F,$00,$14,$7F,$08,$55,$03,$41,$41,$3E,$3E,$3 0,_
$08,$60,$08,$49,$7F,$51,$45,$12,$45,$49,$09,$49,$4 9,$36,$36,$22,$14,$22,$51,_
$79,$11,$49,$41,$41,$49,$09,$49,$08,$7F,$41,$14,$4 0,$0C,$08,$41,$09,$51,$19,_
$49,$7F,$40,$40,$38,$08,$70,$49,$41,$08,$41,$01,$4 0,$02,$54,$44,$44,$44,$54,_
$09,$52,$04,$7D,$40,$28,$7F,$18,$04,$44,$14,$14,$0 4,$54,$44,$40,$40,$30,$10,_
$50,$54,$41,$7F,$41,$04],COLLUM(2)
COL4:
LOOKUP CHARACTER - 32,[$00,$00,$07,$7F,$2A,$64,$22,$00,$00,$22,$08,$08,$0 0,_
$08,$00,$04,$45,$40,$49,$4B,$7F,$45,$49,$05,$49,$4 9,$00,$00,$41,$14,$14,$09,_
$41,$11,$49,$41,$22,$49,$09,$49,$08,$41,$3F,$22,$4 0,$02,$10,$41,$09,$21,$29,_
$49,$01,$40,$20,$40,$14,$08,$45,$00,$10,$41,$02,$4 0,$04,$54,$44,$44,$48,$54,_
$01,$52,$04,$40,$44,$44,$40,$04,$04,$44,$14,$18,$0 4,$54,$40,$20,$20,$40,$28,_
$50,$4C,$00,$00,$36,$08],COLLUM(3)
COL5:
LOOKUP CHARACTER - 32,[$00,$00,$00,$14,$12,$62,$50,$00,$00,$1C,$14,$08,$0 0,_
$08,$00,$02,$3E,$00,$46,$31,$10,$39,$30,$03,$36,$3 E,$00,$00,$00,$14,$08,$06,_
$3E,$7E,$36,$22,$1C,$41,$01,$7A,$7F,$00,$01,$41,$4 0,$7F,$7F,$3E,$06,$5E,$46,_
$31,$01,$3F,$1F,$3F,$63,$07,$43,$00,$20,$7F,$04,$4 0,$00,$78,$38,$20,$7F,$18,_
$02,$3E,$78,$00,$3D,$00,$00,$78,$78,$38,$08,$7C,$0 8,$20,$20,$7C,$1C,$3C,$44,_
$3C,$44,$00,$00,$08,$04],COLLUM(4)
ENDIF
FOR INDEX = 0 TO 4
STROBE 0 ' Enable deactivated
PORTD = COLLUM(INDEX)
STROBE = 1 ' Enable activated
Pauseus 1
RETURN

I hope this helps....
Dave Purola,
N8NTA

Dave
- 19th August 2006, 14:51
SlotH, I inadvertently copied the code twice. Sorry about that.....

Dave Purola,
N8NTA

Dave
- 19th August 2006, 14:58
SlotH, I haven't had my coffee this morning and so I got my first cup and looked at the post. Wow this code won't work so, here it is fixed...

STROBE VAR PORTB.2
CHARACTER VAR BYTE 'ASCII CHARACTER FOR DIGIT ENCODING
COLLUM VAR BYTE [5] 'OUTPUT COLLUM DATA ARRAY
INDEX VAR BYTE 'INDEX COUNTER FOR DISPLAY OUTPUT

************************************************** ******************
CHARTABL: 'CHARACTER LOOK-UP TABLE FOR COLLUMS
' ************************************************** ******************
IF CHARACTER > 31 THEN
' " ","!",""","#","$","%","&","'","(",")","*","+",",",
'"-",".","/","0","1","2","3","4","5","6","7","8","9",":",";","<","=",">","?",
'"@","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R",
'"S","T","U","V","W","X","Y","Z","[","\","]","^","_","`","a","b","c","d","e",
'"f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x",
'"y","z","{","|","}","~"]
COL1:
LOOKUP CHARACTER - 32,[$00,$00,$00,$14,$24,$23,$36,$00,$1C,$00,$14,$08,$0 0,_
$08,$00,$20,$3E,$00,$42,$21,$18,$27,$3C,$01,$36,$0 6,$00,$00,$08,$14,$00,$02,_
$32,$7E,$7F,$3E,$7F,$7F,$7F,$3E,$7F,$00,$20,$7F,$7 F,$7F,$7F,$3E,$7F,$3E,$7F,_
$46,$01,$3F,$1F,$3F,$63,$07,$61,$7F,$02,$00,$04,$4 0,$00,$20,$7f,$38,$38,$38,_
$08,$0c,$7f,$00,$00,$7f,$00,$7c,$7c,$38,$7c,$08,$7 c,$48,$04,$3c,$1c,$3c,$44,_
$0c,$44,$08,$00,$00,$00],COLLUM(0)
COL2:
LOOKUP CHARACTER - 32,[$00,$00,$07,$7F,$2A,$13,$49,$05,$22,$00,$08,$08,$5 0,_
$08,$60,$10,$51,$42,$61,$41,$14,$45,$4A,$71,$49,$4 9,$36,$56,$14,$14,$41,$01,_
$49,$11,$49,$41,$41,$49,$09,$41,$08,$41,$40,$08,$4 0,$02,$04,$41,$09,$41,$09,_
$49,$01,$40,$20,$40,$14,$08,$51,$41,$04,$00,$02,$4 0,$01,$54,$48,$44,$44,$54,_
$7E,$52,$08,$44,$20,$10,$41,$04,$08,$44,$14,$14,$0 8,$54,$3F,$40,$20,$40,$28,_
$50,$64,$36,$00,$00,$08],COLLUM(1)
COL3:
LOOKUP CHARACTER - 32,[$00,$4F,$00,$14,$7F,$08,$55,$03,$41,$41,$3E,$3E,$3 0,_
$08,$60,$08,$49,$7F,$51,$45,$12,$45,$49,$09,$49,$4 9,$36,$36,$22,$14,$22,$51,_
$79,$11,$49,$41,$41,$49,$09,$49,$08,$7F,$41,$14,$4 0,$0C,$08,$41,$09,$51,$19,_
$49,$7F,$40,$40,$38,$08,$70,$49,$41,$08,$41,$01,$4 0,$02,$54,$44,$44,$44,$54,_
$09,$52,$04,$7D,$40,$28,$7F,$18,$04,$44,$14,$14,$0 4,$54,$44,$40,$40,$30,$10,_
$50,$54,$41,$7F,$41,$04],COLLUM(2)
COL4:
LOOKUP CHARACTER - 32,[$00,$00,$07,$7F,$2A,$64,$22,$00,$00,$22,$08,$08,$0 0,_
$08,$00,$04,$45,$40,$49,$4B,$7F,$45,$49,$05,$49,$4 9,$00,$00,$41,$14,$14,$09,_
$41,$11,$49,$41,$22,$49,$09,$49,$08,$41,$3F,$22,$4 0,$02,$10,$41,$09,$21,$29,_
$49,$01,$40,$20,$40,$14,$08,$45,$00,$10,$41,$02,$4 0,$04,$54,$44,$44,$48,$54,_
$01,$52,$04,$40,$44,$44,$40,$04,$04,$44,$14,$18,$0 4,$54,$40,$20,$20,$40,$28,_
$50,$4C,$00,$00,$36,$08],COLLUM(3)
COL5:
LOOKUP CHARACTER - 32,[$00,$00,$00,$14,$12,$62,$50,$00,$00,$1C,$14,$08,$0 0,_
$08,$00,$02,$3E,$00,$46,$31,$10,$39,$30,$03,$36,$3 E,$00,$00,$00,$14,$08,$06,_
$3E,$7E,$36,$22,$1C,$41,$01,$7A,$7F,$00,$01,$41,$4 0,$7F,$7F,$3E,$06,$5E,$46,_
$31,$01,$3F,$1F,$3F,$63,$07,$43,$00,$20,$7F,$04,$4 0,$00,$78,$38,$20,$7F,$18,_
$02,$3E,$78,$00,$3D,$00,$00,$78,$78,$38,$08,$7C,$0 8,$20,$20,$7C,$1C,$3C,$44,_
$3C,$44,$00,$00,$08,$04],COLLUM(4)
ENDIF
FOR INDEX = 0 TO 4
STROBE = 0 ' Enable deactivated
PORTD = COLLUM(INDEX)
STROBE = 1 ' Enable activated
Pauseus 1
NEXT INDEX
RETURN

I hope this helps....
Dave Purola,
N8NTA

SlotH
- 19th August 2006, 19:11
first of all, thanks Dave:) this looks pretty interesting!
Is there any easy method for reading a whole string, or should i just do like this:

CHARACTER = "H"
gosub CHARTABL
CHARACTER = "E"
gosub CHARTABL
CHARACTER = "L"
gosub CHARTABL
CHARACTER = "L"
gosub CHARTABL
CHARACTER = "O"
gosub CHARTABL

Or perhaps you got a better alternative?

Dave
- 20th August 2006, 14:41
SlotH, Yes, if you just want to place individual characters but the strings you are talking about, where are they comming from?

Dave Purola,
N8NTA

SlotH
- 20th August 2006, 20:14
They are preprogrammed in the code. Anyway, it's solved now.
Here's a picture of the almost finished result:
http://megadrome.elixant.com/SlotH/LCD5.jpg
(It's Swedish)
So thanks for the help Dave!

mister_e
- 20th August 2006, 20:16
That's a really great display job!
gratulerar!

nicolasronan
- 27th August 2006, 15:46
could you give us the complete code of your project and the diagrams? thus we would have finally an example of code in pbp for the KS0108.
thanks

nicolasronan
- 1st September 2006, 17:57
up
please

sayzer
- 1st September 2006, 20:35
Hi SlotH,

Look what I got here for you.

<img src="http://img8.picsplace.to/img8/20/candy_000.jpg" alt="Image Hosting by PicsPlace.to" >

Acetronics2
- 1st September 2006, 20:55
I do not know if I really was allowed to ... but had a look to that code.

RESPECT to you Slot ( say, Petter ) ... really a very nice piece of code !!!

Yes, Sayzer ... candy !!!

Alain

SlotH
- 5th September 2006, 18:17
Sorry if I haven't replied in while.. I've been kind of busy...

Acetronics: It's okey! :) I got nothing to hide.

Anyway, here is the code:
http://www.megadrome.elixant.com/SlotH/kod.txt
All the comments are in Swedish, and it's not so "user friendly"..
It's not a universal code, it's made specially for my project only.
And please, if you are going to use the code, don't rip it.

Archangel
- 5th September 2006, 22:39
Great Job !

You Have taken a lot of Old Dogs to school here, I know I will spend about a hundred hours learning what and how this code does it's magic. As I do not speak Sweedish it may take a little longer. It will be worth the time.

Thank You for posting it.

sayzer
- 6th September 2006, 08:06
....
All the comments are in Swedish, and it's not so "user friendly"...


Thanks a lot SlotH.

Looking for Swedish volunteers for user friendly English translation...
User friendly Swedish speaking volunteers also ok.

I got more candy here.



--------------------------

F1CHF
- 14th February 2008, 22:04
Oupps ..
I was happy to find a discussion abour a starter to GLCD ..
I didn't find the "code" because links seems dead ?
question: where I can find a sample to understand how to write "hello"
on a LCD ..
cheers !
francois
F1CHF

skimask
- 15th February 2008, 03:47
Oupps ..
I was happy to find a discussion abour a starter to GLCD ..
I didn't find the "code" because links seems dead ?
question: where I can find a sample to understand how to write "hello"
on a LCD ..
cheers !
francois
F1CHF

Which type of GLCD? Which controller?

Darrel Taylor
- 15th February 2008, 05:35
Which type of GLCD? Which controller?
Along with reading datasheets and manuals, one must read the post.

... graphic LCD (KS0108B circuit)
Kind of like saying HD44780, if it were an alphanumeric LCD.

Does that help you anwer the question?
<br>

skimask
- 15th February 2008, 05:53
Along with reading datasheets and manuals, one must read the post.
Kind of like saying HD44780, if it were an alphanumeric LCD.
Does that help you anwer the question?
<br>

You mean the one that said

... graphic LCD (KS0108B circuit)
back in Aug '06?
Things could've changed since then...

Darrel Taylor
- 15th February 2008, 05:58
Why ASSUME it's changed.

He replied to a thread about a KS0108.

No further information was given.

Maybe he has a KS0108.
<br>
You've done GLCD's before.
Got anything for F1CHF?
<br>

skimask
- 15th February 2008, 06:08
Why ASSUME it's changed.
He replied to a thread about a KS0108.
No further information was given.
Maybe he has a KS0108.
<br>
You've done GLCD's before.
Got anything for F1CHF?
<br>

No further info was given...that's what I'm thinking...18 month old thread brought back from the dead for ????????
Seems like one of the hotter things going these days are those Nokia color LCD knockoff boards and displays from Sparkfun. I'm having a ball with mine. Standby on that one. I'll have a LOAD of PBP code posted for those soon...ASCII character set in eeprom, text routines, semi-assembly printstr type functions, graphic functions (circles, lines, boxes, rectangles, shading, bmp conversions/importing semi-sorta like what you're doing with R.B. 1-bit sound routines, etc.etc.etc., crazy stuff).

Code for the GLCD...Not that particular controller...and I can't think of what that one website was that had a bunch of sample code... I think the 122x32 GLCD code I posted awhile back is similar but didn't want to suggest 'cause I'd probably end up rewriting it completely to fit, or it just wouldn't work altogether.

Compsys...Computech...something like that...sold Serial GLCD's I think...

Archangel
- 15th February 2008, 06:40
http://www.sparkfun.com/commerce/product_info.php?products_id=8358

skimask
- 15th February 2008, 06:44
http://www.sparkfun.com/commerce/product_info.php?products_id=8358

Well, yes and no. This is the one that I'm talking about:
http://www.sparkfun.com/commerce/product_info.php?products_id=569
That's the one I've been messing around with the code for.
The hookup boards aren't very cheap ($20 each), but the LCD's themselves can be found on eBay for less than $20...$40 total...and the code, practically free once I get it put up here, except for the pain in learning how to work it...

(Hotdog vendor? WTH?)

F1CHF
- 15th February 2008, 08:04
Thanks for coming back
I didn't see that this thread was so old !
It is the first time for me with GLCD display
I have uploaded the PDF, is it suffisant to find which kind of controller it uses ?
I hope so ..
Tell me if I am right ...
I have a process that fill a variable "toto" with a value (let say H for HELLO as a numeric value, because in PBP we can't handle alphanumeric)
Through a Lookup table (as described in this thread) I will be able so feed a table
with ROW1 to ROW7 ...(for example)
I just need to send thoses rows to get the character displayed ?
That would be nice, is to get a Sub routine (like LCDOUT) and just jump to it with
the character fill in "toto" .. I am right or outside my shoes ?
thanks in advance
Francois F1CHF

Acetronics2
- 15th February 2008, 10:54
Hi, François

On my side ... I've got a turnaround ...

using a dedicated PIC just to care of big GLCDs ( 128*64 or over ). as it needs some ( LOL ) memory and time to write the whole screen ...

The project was published in EP issue 279 ..., allows a 9600 Baud serial transmission from the PC or a Pic and the use of simple commands for classical shapes ( point, circle, box ...).

If you want, I'll post you a copy of the full project ( no more downloadable from the EP site ) ... and "THE" SlotH ( Petter) listing.

Alain

Pic_User
- 15th February 2008, 13:04
…(Hotdog vendor? WTH?)

If that page doesn't give you enough to understand those filters ...

http://www.cs.unc.edu/~welch/kalman/

There's no more to do for you than sell hotdogs, bretzels or pizzas ( even donuts ) in the street ...

I also remember having seen some of these filters used in UAV's ...

So, I suspect more a SEARCHing problem than an Understanding problem ...

But it's me ...

Alain


Hi Alain,
I looked at the whitepaper on that website . . . is that really math or pop art?
You wanna buy a hot dog? :o


Hi, Joe

Was somewhat like that when I first discovered Fuzzy Logic ...

You know what ???

I DO HATE Maths ... But will surely enjoy a good Hotdog !!! _ Making Hoddogs is a full job. Programming Pic too.

LOL !!!

Alain
Gotta use that search engine :)
-Adam-

skimask
- 15th February 2008, 16:39
Tell me if I am right ...
Francois F1CHF

You are fairly close in your thinking...
I don't remember the thread, but there is one floating around here that deals with that 122x32 LCD that I whipped up some PBP code for, including a fairly robust font table.
Looking at the attached datasheet, with a few changes, it should be easily adaptable to the 128x64 LCD you are talking about (change the maximum's to 128x64 instead of 122x32, change the maximum X,Y for characters from 20x4 to 21x8, all characters are 5x7(6x8 with seperator), and some other minor timing changes.

Here it is...
http://www.picbasic.co.uk/forum/showthread.php?t=6574&highlight=122x32

F1CHF
- 15th February 2008, 17:46
My god ....not a piece of cake !
Mister PBP, please create a GLCDOUT command ! hi ...
thanks or your help
I must work on now ....
Francois

skimask
- 15th February 2008, 18:08
My god ....not a piece of cake !
Mister PBP, please create a GLCDOUT command ! hi ...
thanks or your help
I must work on now ....
Francois

True, it's not a piece of cake....
In the end, my code going out to the 122x32 LCD looks like this:
@ printstr 2 , 1 , "This is a string"

Prints "This is a string" starting at X position 2 on the 2nd line down from the top.
You can't get a whole lot easier than that!....well, once the code is in place anyways.

At any rate, I'll look thru that datasheet a bit harder later on. Like I said, I understand my code (nobody else likes the way I write, but that's ok). If it really is that easy to convert over to the KS type controller, I'll have a go at it sometime this weekend and let you know when I get something done up. - DONE

See the thread referenced in Post #29 for some code for the 128 x 64 graphic LCDs...and pay heed to the notes contained. I'll start a different thread once that code is tested and verified working.

med2007
- 20th April 2008, 16:42
Are these things hard to drive?
Can I write, in PBP, simple programs to display text easily, or is it tres dificile?
I am an Old Timer, born before 1940 but still trying to learn, some people say I am very trying!
Rgds
Mike

mister_e
- 20th April 2008, 16:49
None de ceux que I know ne sont as this compliqué :D

Basically, once you got a working example for a X controller, you just need to adapt it to another... looks easy huh?

How to have success.. Buy both GLCD type, download and print both datasheet, buy a crate of beer, sit back and relax a little bit while comparing both datasheet.

Then you try few things... and that's where the fun begin :D A swear jar is recommended :D