MikroC Nokia1100LCD

ErnieM

Joined Apr 24, 2011
8,415
Well... perhaps the code will be of no use. Better to write your own then to figure this stuff out.

What you do have is the font files Font4x6.c, Font5x7.c, and FontDisplay.c. These define full ASCII sets in 4x6, 5x7, and 10x9 pixels. (10x9 was for a calculator program and just does the 16 hex characters). These C files define a line of pixels for each character. The extra info at the bottom aid in hitting the correct place for info, as not every character is used (just those in the center of the ASCII tables), and the needful things for using the array are defined and put into one structure so passing that structure passes references to all the other data.

Perhaps you could adapt this into whatever code you are using.
 

ErnieM

Joined Apr 24, 2011
8,415
I took a quick peek at lunch. Seems the 5x7 font file I gave you matches the one you alread have. The other file is for a smaller font (4x6) but I don't remember and didn't see how it is parsed. I believe I packed data (smaller then a byte) into a small package to save room, but teasing it out failed me. Perhaps I can play some night st home to pull it out.

Tonight is dinner with the kids, tomorrow night is full too. Perhaps using Mikro's font creator would be faster for you. It's a lot of tedious work but...
 

Thread Starter

MikroPIC

Joined Jan 19, 2015
23
Hi ..
I have installed Mikroelectronica Font creator , is it work for any LCD , for Nokia 1100 for example ? because i generate the matrix and it compiled successfully, but it shows garbage on the LCD
 
Last edited:

spinnaker

Joined Oct 29, 2009
7,830
I think the font creator generates the font in column order. But I need to take another look just to be sure.

If you have a known working font, even one character, you could recreate that font using the tool then output the code to see if it is compatible. It is just bits. It would not be hard to write code in a PC based program to manipulate the array in the order that you need. I wish mikro gave the ability to customize how the array is built.
 

Thread Starter

MikroPIC

Joined Jan 19, 2015
23
I think the font creator generates the font in column order. But I need to take another look just to be sure.

If you have a known working font, even one character, you could recreate that font using the tool then output the code to see if it is compatible. It is just bits. It would not be hard to write code in a PC based program to manipulate the array in the order that you need. I wish mikro gave the ability to customize how the array is built.
You alright , I'll check it out . but I notice that the garbage is same whatever I write , even when there is no write command to writes anything ! .
 

Thread Starter

MikroPIC

Joined Jan 19, 2015
23
hello this matrix of font craeted using Mikroelectronica Font creator , I imported Times new roman size 8
is this font ok ? the font creator tells me that warning :This Font Require X-GLCD Lib, You can not use it with MikroE GLCD Lib
Code:
//WARNING: This Font Require X-GLCD Lib.
//         You can not use it with MikroE GLCD Lib.

//Font Generated by MikroElektronika GLCD Font Creator 1.2.0.0
//MikroElektronika 2011
//http://www.mikroe.com

//GLCD FontName : Times_New_Roman11x14
//GLCD FontSize : 11 x 14

const unsigned short Times_New_Roman11x14[] = {
        0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char 
        0x02, 0x00, 0x00, 0xF8, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char !
        0x04, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char "
        0x06, 0x40, 0x07, 0xE0, 0x01, 0x58, 0x01, 0x40, 0x07, 0xE0, 0x01, 0x58, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char #
        0x05, 0x30, 0x02, 0x48, 0x04, 0xFC, 0x0F, 0x88, 0x04, 0x10, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char $
        0x09, 0x30, 0x00, 0x48, 0x04, 0x30, 0x02, 0x00, 0x01, 0xC0, 0x00, 0x20, 0x00, 0x10, 0x03, 0x88, 0x04, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00,  // Code for char %
        0x08, 0x80, 0x03, 0x80, 0x04, 0x70, 0x04, 0xC8, 0x05, 0x28, 0x02, 0x18, 0x05, 0xC0, 0x04, 0x40, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char &
        0x01, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char '
        0x03, 0xE0, 0x07, 0x10, 0x08, 0x08, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char (
        0x03, 0x08, 0x10, 0x10, 0x08, 0xE0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char )
        0x05, 0x50, 0x00, 0x20, 0x00, 0xF8, 0x00, 0x20, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char *
        0x05, 0x80, 0x00, 0x80, 0x00, 0xE0, 0x03, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char +
        0x02, 0x00, 0x14, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char ,
        0x03, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char -
        0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char .
        0x03, 0x00, 0x06, 0xE0, 0x01, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char /
        0x05, 0xF0, 0x03, 0x08, 0x04, 0x08, 0x04, 0x08, 0x04, 0xF0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char 0
        0x04, 0x00, 0x00, 0x08, 0x04, 0xF8, 0x07, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char 1
        0x05, 0x10, 0x04, 0x08, 0x06, 0x08, 0x05, 0x88, 0x04, 0x70, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char 2
        0x05, 0x10, 0x04, 0x08, 0x04, 0x48, 0x04, 0x48, 0x04, 0xB0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char 3
        0x05, 0x80, 0x01, 0x60, 0x01, 0x10, 0x01, 0xF8, 0x07, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char 4
        0x05, 0x00, 0x04, 0x30, 0x04, 0x28, 0x04, 0x48, 0x04, 0x88, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char 5
        0x05, 0xC0, 0x03, 0xB0, 0x04, 0x50, 0x04, 0x48, 0x04, 0x88, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char 6
        0x05, 0x10, 0x00, 0x08, 0x00, 0x08, 0x06, 0xC8, 0x01, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char 7
        0x05, 0x30, 0x03, 0xC8, 0x04, 0x48, 0x04, 0xC8, 0x04, 0x30, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char 8
        0x05, 0x70, 0x04, 0x88, 0x04, 0x88, 0x02, 0x88, 0x03, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char 9
        0x02, 0x00, 0x00, 0x40, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char :
        0x03, 0x00, 0x00, 0x40, 0x14, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char ;
        0x05, 0x80, 0x00, 0x40, 0x01, 0x40, 0x01, 0x40, 0x01, 0x20, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char <
        0x05, 0x40, 0x01, 0x40, 0x01, 0x40, 0x01, 0x40, 0x01, 0x40, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char =
        0x05, 0x20, 0x02, 0x40, 0x01, 0x40, 0x01, 0x40, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char >
        0x04, 0x10, 0x00, 0x88, 0x05, 0x48, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char ?
        0x09, 0xC0, 0x07, 0x20, 0x08, 0x90, 0x13, 0x48, 0x24, 0x28, 0x24, 0xA8, 0x23, 0x68, 0x22, 0x10, 0x12, 0xE0, 0x09, 0x00, 0x00, 0x00, 0x00,  // Code for char @
        0x07, 0x00, 0x04, 0x00, 0x07, 0xE0, 0x05, 0x18, 0x01, 0xE0, 0x05, 0x00, 0x07, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char A
        0x06, 0x08, 0x04, 0xF8, 0x07, 0x48, 0x04, 0x48, 0x04, 0x48, 0x04, 0xB0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char B
        0x06, 0xE0, 0x01, 0x10, 0x02, 0x08, 0x04, 0x08, 0x04, 0x08, 0x04, 0x18, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char C
        0x07, 0x08, 0x04, 0xF8, 0x07, 0x08, 0x04, 0x08, 0x04, 0x08, 0x04, 0x10, 0x02, 0xE0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char D
        0x06, 0x08, 0x04, 0xF8, 0x07, 0x48, 0x04, 0xE8, 0x04, 0x08, 0x04, 0x18, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char E
        0x06, 0x08, 0x04, 0xF8, 0x07, 0x48, 0x04, 0xE8, 0x00, 0x08, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char F
        0x07, 0xE0, 0x01, 0x10, 0x02, 0x08, 0x04, 0x08, 0x04, 0x88, 0x04, 0x98, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char G
        0x07, 0x08, 0x04, 0xF8, 0x07, 0x48, 0x04, 0x40, 0x00, 0x48, 0x04, 0xF8, 0x07, 0x08, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char H
        0x03, 0x08, 0x04, 0xF8, 0x07, 0x08, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char I
        0x04, 0x00, 0x04, 0x08, 0x04, 0xF8, 0x03, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char J
        0x08, 0x08, 0x04, 0xF8, 0x07, 0x48, 0x04, 0xA0, 0x00, 0x18, 0x05, 0x08, 0x06, 0x08, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char K
        0x06, 0x08, 0x04, 0xF8, 0x07, 0x08, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char L
        0x09, 0x08, 0x04, 0xF8, 0x07, 0x38, 0x04, 0xC0, 0x01, 0x00, 0x06, 0xC0, 0x01, 0x38, 0x04, 0xF8, 0x07, 0x08, 0x04, 0x00, 0x00, 0x00, 0x00,  // Code for char M
        0x07, 0x08, 0x04, 0xF8, 0x07, 0x20, 0x04, 0xC0, 0x00, 0x08, 0x01, 0xF8, 0x07, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char N
        0x07, 0xE0, 0x01, 0x10, 0x02, 0x08, 0x04, 0x08, 0x04, 0x08, 0x04, 0x10, 0x02, 0xE0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char O
        0x06, 0x08, 0x04, 0xF8, 0x07, 0x88, 0x04, 0x88, 0x00, 0x88, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char P
        0x07, 0xE0, 0x01, 0x10, 0x02, 0x08, 0x04, 0x08, 0x04, 0x08, 0x0C, 0x10, 0x12, 0xE0, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char Q
        0x07, 0x08, 0x04, 0xF8, 0x07, 0x48, 0x04, 0xC8, 0x00, 0x48, 0x03, 0x30, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char R
        0x04, 0x30, 0x06, 0x48, 0x04, 0x88, 0x04, 0x18, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char S
        0x07, 0x18, 0x00, 0x08, 0x00, 0x08, 0x04, 0xF8, 0x07, 0x08, 0x04, 0x08, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char T
        0x07, 0x08, 0x00, 0xF8, 0x03, 0x08, 0x04, 0x00, 0x04, 0x08, 0x04, 0xF8, 0x03, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char U
        0x07, 0x08, 0x00, 0x38, 0x00, 0xC8, 0x01, 0x00, 0x06, 0xC8, 0x01, 0x38, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char V
        0x0B, 0x08, 0x00, 0x38, 0x00, 0xC8, 0x01, 0x00, 0x06, 0x88, 0x01, 0x78, 0x00, 0x88, 0x01, 0x00, 0x06, 0xC8, 0x01, 0x38, 0x00, 0x08, 0x00,  // Code for char W
        0x07, 0x08, 0x04, 0x18, 0x06, 0x28, 0x05, 0xC0, 0x00, 0x28, 0x05, 0x18, 0x06, 0x08, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char X
        0x07, 0x08, 0x00, 0x18, 0x00, 0x68, 0x04, 0x80, 0x07, 0x68, 0x04, 0x18, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char Y
        0x06, 0x18, 0x06, 0x08, 0x05, 0xC8, 0x04, 0x28, 0x04, 0x18, 0x04, 0x08, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char Z
        0x04, 0x00, 0x00, 0xF8, 0x1F, 0x08, 0x10, 0x08, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char [
        0x03, 0x18, 0x00, 0xE0, 0x01, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char BackSlash
        0x03, 0x08, 0x10, 0x08, 0x10, 0xF8, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char ]
        0x04, 0x60, 0x00, 0x18, 0x00, 0x18, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char ^
        0x06, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char _
        0x03, 0x00, 0x00, 0x08, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char `
        0x05, 0x00, 0x02, 0x40, 0x05, 0x40, 0x05, 0x80, 0x07, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char a
        0x04, 0xF8, 0x03, 0x40, 0x04, 0x40, 0x04, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char b
        0x04, 0x80, 0x03, 0x40, 0x04, 0x40, 0x04, 0xC0, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char c
        0x05, 0x80, 0x03, 0x40, 0x04, 0x48, 0x04, 0xF8, 0x07, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char d
        0x04, 0x80, 0x03, 0x40, 0x05, 0x40, 0x05, 0x80, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char e
        0x05, 0x40, 0x04, 0xF0, 0x07, 0x48, 0x04, 0x08, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char f
        0x05, 0x80, 0x0E, 0x40, 0x15, 0x40, 0x15, 0xC0, 0x14, 0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char g
        0x06, 0x08, 0x04, 0xF8, 0x07, 0x80, 0x04, 0x40, 0x00, 0xC0, 0x07, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char h
        0x03, 0x40, 0x04, 0xC8, 0x07, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char i
        0x02, 0x40, 0x10, 0xC8, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char j
        0x05, 0x08, 0x04, 0xF8, 0x07, 0x00, 0x01, 0xC0, 0x06, 0x40, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char k
        0x03, 0x08, 0x04, 0xF8, 0x07, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char l
        0x09, 0x40, 0x04, 0xC0, 0x07, 0x80, 0x04, 0x40, 0x00, 0xC0, 0x07, 0x80, 0x04, 0x40, 0x00, 0xC0, 0x07, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00,  // Code for char m
        0x06, 0x40, 0x04, 0xC0, 0x07, 0x80, 0x04, 0x40, 0x00, 0xC0, 0x07, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char n
        0x05, 0x80, 0x03, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char o
        0x05, 0x40, 0x10, 0xC0, 0x1F, 0x40, 0x14, 0x40, 0x04, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char p
        0x05, 0x80, 0x03, 0x40, 0x04, 0x40, 0x14, 0xC0, 0x1F, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char q
        0x04, 0x40, 0x04, 0xC0, 0x07, 0x80, 0x04, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char r
        0x03, 0x80, 0x04, 0x40, 0x05, 0x40, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char s
        0x03, 0x40, 0x00, 0xF0, 0x07, 0x40, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char t
        0x05, 0xC0, 0x03, 0x00, 0x04, 0x40, 0x04, 0xC0, 0x07, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char u
        0x06, 0x40, 0x00, 0xC0, 0x01, 0x00, 0x06, 0x40, 0x01, 0xC0, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char v
        0x07, 0xC0, 0x01, 0x00, 0x06, 0x40, 0x01, 0xC0, 0x01, 0x00, 0x06, 0xC0, 0x01, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char w
        0x05, 0x40, 0x04, 0xC0, 0x06, 0x00, 0x01, 0xC0, 0x06, 0x40, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char x
        0x06, 0x40, 0x10, 0xC0, 0x11, 0x00, 0x0E, 0x40, 0x03, 0xC0, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char y
        0x05, 0xC0, 0x04, 0x40, 0x06, 0x40, 0x05, 0xC0, 0x04, 0x40, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char z
        0x03, 0x80, 0x00, 0x70, 0x0F, 0x08, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char {
        0x01, 0xF8, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char |
        0x04, 0x00, 0x00, 0x08, 0x10, 0x70, 0x0F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char }
        0x05, 0x80, 0x01, 0x80, 0x00, 0x80, 0x01, 0x00, 0x01, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // Code for char ~
        0x03, 0xF8, 0x07, 0x08, 0x04, 0xF8, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // Code for char 
        };
 

takao21203

Joined Apr 28, 2012
3,702
<snip>
is this font ok ? the font creator tells me that warning :This Font Require X-GLCD Lib, You can not use it with MikroE GLCD Lib
<snip>
I could.

I think its time you do the homework and figure out:

-How do I set a pixel
-How do I set the cursor
-How do I copy a small bitmap using the two above functions

And perhaps

-How do I initialize the display properly
-How do I configure/adapt the IO

Each of these needs some coding effort from you, testing and debugging.

When you get a larger programming problem, you deal with one manageable problem at a time.

Dont you have any comments about the sources supplied besides: I cant use the files, and does the font work with the Nokia 1100

I have one answer too: The font is just a bitmap and it could work with just any display. Its neither working or not working with a Nokia 1100.

Your job is to copy the small bitmaps from the large array, one at a time, and deal with coordinates as well IO settings and pixel setting + clearing the display.
 

Thread Starter

MikroPIC

Joined Jan 19, 2015
23
the problem currently is in Mikroelectronica Font creator , it only gives me X-GLCD Lib choice , not MikroE GLCD Lib
I tried to create one char by drawing it , but it would gives me the following matrix :
Code:
//WARNING: This Font is usable only with MikroE GLCD Lib.
//         X-GLCD Lib does not handle this font.

//Font Generated by MikroElektronika GLCD Font Creator 1.2.0.0
//MikroeElektronika 2011
//http://www.mikroe.com

//GLCD FontName : Untitled8x8
//GLCD FontSize : 8 x 8

const unsigned short Untitled8x8[] = {
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // Code for char
        };
whatever the char I draw
 

spinnaker

Joined Oct 29, 2009
7,830
Your font height needs to be 8 bits to enable MikroE GLCD Lib. There are only a few fonts that will allow for that. One is Terminal 8.

This isn't hard. You should know the capabilities / requirements of your device then match the resulting code that is exported to what your device needs. Use the Windows Programmers calculator to convert hex to binary to make it easier to see if the font works for you.
 

takao21203

Joined Apr 28, 2012
3,702
OK sorry I see you have a specific problem. How about selecting the other library? Its just const data after all.

I've ported string routine etc. from 8051 and its just a couple of lines, of course slow, improving it took me some hours.

Again I'm sorry if you somehow just have in mind to use that lib and thats your approach, nothing wrong with it.
 

Thread Starter

MikroPIC

Joined Jan 19, 2015
23
Your font height needs to be 8 bits to enable MikroE GLCD Lib. There are only a few fonts that will allow for that. One is Terminal 8.

This isn't hard. You should know the capabilities / requirements of your device then match the resulting code that is exported to what your device needs. Use the Windows Programmers calculator to convert hex to binary to make it easier to see if the font works for you.
yes that's right but I still get garbage but in some cases it gives a readable characters
 

spinnaker

Joined Oct 29, 2009
7,830
yes that's right but I still get garbage but in some cases it gives a readable characters
When you can "readable characters" Is it the characters that you expect?

It might be some fonts are not supported by your display.

Write a program to output one character at a time to the display.


A table of characters can be found here.

http://www.asciitable.com/

You also will want to debug your code and make certain the correct bytes are being output to the display.

It would be best to use a scope, logic probe, logic analyzer and make certain those bits are getting to the proper pins on the display.
 

Thread Starter

MikroPIC

Joined Jan 19, 2015
23
No it's not as I expected , beside that , I tried to shifting the display , but it didn't work , please take a look on my complete project , its written in MikroC pic Pro
and it also contain the proteus model , thanx .
 

Attachments

ErnieM

Joined Apr 24, 2011
8,415
Mikro: did you get my point about the print_char() inside LCD100.c needing to be changed for each font size you use?
 

Thread Starter

MikroPIC

Joined Jan 19, 2015
23
I am sure. It is not MikroC compatible, if only because it calls to Microchip library items you can only find in their archives (that I did not include).

I present it as examples of font files, and how to use them. Fonts get used in the Glcd_Put_Rom_String(), Glcd_Spot_Rom_String(), Glcd_Put_Ram_String(), and Glcd_Spot_Ram_String() routines (C18 handles RAM and ROM strings differently).

These all call the routines Glcd_WriteBits() which is the tricky part where fonts get inserted.
you mean that ? that need a professional work that I havn't .
 

takao21203

Joined Apr 28, 2012
3,702
Using libraries can be hard if there arent good examples and documentation isnt complete, or doesnt contain the information you need, or its too hard to find it.

I'll try to get a NOKIA 5110 source- the IO is different but possibly you can see how it works.
If you have proportional fonts, they may have different width I use that on small LED matrix.
It complicates the code so much at first I copy it into RAM, then output the whole bitmap.

Also on 8bit PICs larger width than 8 pixels is awfully slow using integer (16 bit), so the code may look more convoluted since its optimized for 8bit MCU.
 

takao21203

Joined Apr 28, 2012
3,702
Its a source code from Sparkfun, there are probably some minor changes.

Code:
/******************************************************************************/
/* Files to Include                                                           */
/******************************************************************************/

#if defined(__XC)
    #include <xc.h>         /* XC8 General Include File */
#elif defined(HI_TECH_C)
    #include <htc.h>        /* HiTech General Include File */
#endif

#include <stdint.h>         /* For uint8_t definition */
#include <stdbool.h>        /* For true/false definition */

#include "user.h"

/******************************************************************************/
/* User Functions                                                             */
/******************************************************************************/

#define LCD_CLK LATCbits.LATC5
#define LCD_DIN LATCbits.LATC4
#define LCD_DC LATCbits.LATC3
#define LCD_CE LATCbits.LATC6
#define LCD_RST LATCbits.LATC7

//The DC pin tells the LCD if we are sending a command or data
#define LCD_COMMAND 0
#define LCD_DATA  1

//You may find a different size screen, but this one is 84 by 48 pixels
#define LCD_X     84
#define LCD_Y     48

/* <Initialize variables in user.h and insert code for user algorithms.> */
const unsigned char ASCII[][5] = {
  {0x00, 0x00, 0x00, 0x00, 0x00} // 20
  ,{0x00, 0x00, 0x5f, 0x00, 0x00} // 21 !
  ,{0x00, 0x07, 0x00, 0x07, 0x00} // 22 "
  ,{0x14, 0x7f, 0x14, 0x7f, 0x14} // 23 #
  ,{0x24, 0x2a, 0x7f, 0x2a, 0x12} // 24 $
  ,{0x23, 0x13, 0x08, 0x64, 0x62} // 25 %
  ,{0x36, 0x49, 0x55, 0x22, 0x50} // 26 &
  ,{0x00, 0x05, 0x03, 0x00, 0x00} // 27 '
  ,{0x00, 0x1c, 0x22, 0x41, 0x00} // 28 (
  ,{0x00, 0x41, 0x22, 0x1c, 0x00} // 29 )
  ,{0x14, 0x08, 0x3e, 0x08, 0x14} // 2a *
  ,{0x08, 0x08, 0x3e, 0x08, 0x08} // 2b +
  ,{0x00, 0x50, 0x30, 0x00, 0x00} // 2c ,
  ,{0x08, 0x08, 0x08, 0x08, 0x08} // 2d -
  ,{0x00, 0x60, 0x60, 0x00, 0x00} // 2e .
  ,{0x20, 0x10, 0x08, 0x04, 0x02} // 2f /
  ,{0x3e, 0x51, 0x49, 0x45, 0x3e} // 30 0
  ,{0x00, 0x42, 0x7f, 0x40, 0x00} // 31 1
  ,{0x42, 0x61, 0x51, 0x49, 0x46} // 32 2
  ,{0x21, 0x41, 0x45, 0x4b, 0x31} // 33 3
  ,{0x18, 0x14, 0x12, 0x7f, 0x10} // 34 4
  ,{0x27, 0x45, 0x45, 0x45, 0x39} // 35 5
  ,{0x3c, 0x4a, 0x49, 0x49, 0x30} // 36 6
  ,{0x01, 0x71, 0x09, 0x05, 0x03} // 37 7
  ,{0x36, 0x49, 0x49, 0x49, 0x36} // 38 8
  ,{0x06, 0x49, 0x49, 0x29, 0x1e} // 39 9
  ,{0x00, 0x36, 0x36, 0x00, 0x00} // 3a :
  ,{0x00, 0x56, 0x36, 0x00, 0x00} // 3b ;
  ,{0x08, 0x14, 0x22, 0x41, 0x00} // 3c <
  ,{0x14, 0x14, 0x14, 0x14, 0x14} // 3d =
  ,{0x00, 0x41, 0x22, 0x14, 0x08} // 3e >
  ,{0x02, 0x01, 0x51, 0x09, 0x06} // 3f ?
  ,{0x32, 0x49, 0x79, 0x41, 0x3e} // 40 @
  ,{0x7e, 0x11, 0x11, 0x11, 0x7e} // 41 A
  ,{0x7f, 0x49, 0x49, 0x49, 0x36} // 42 B
  ,{0x3e, 0x41, 0x41, 0x41, 0x22} // 43 C
  ,{0x7f, 0x41, 0x41, 0x22, 0x1c} // 44 D
  ,{0x7f, 0x49, 0x49, 0x49, 0x41} // 45 E
  ,{0x7f, 0x09, 0x09, 0x09, 0x01} // 46 F
  ,{0x3e, 0x41, 0x49, 0x49, 0x7a} // 47 G
  ,{0x7f, 0x08, 0x08, 0x08, 0x7f} // 48 H
  ,{0x00, 0x41, 0x7f, 0x41, 0x00} // 49 I
  ,{0x20, 0x40, 0x41, 0x3f, 0x01} // 4a J
  ,{0x7f, 0x08, 0x14, 0x22, 0x41} // 4b K
  ,{0x7f, 0x40, 0x40, 0x40, 0x40} // 4c L
  ,{0x7f, 0x02, 0x0c, 0x02, 0x7f} // 4d M
  ,{0x7f, 0x04, 0x08, 0x10, 0x7f} // 4e N
  ,{0x3e, 0x41, 0x41, 0x41, 0x3e} // 4f O
  ,{0x7f, 0x09, 0x09, 0x09, 0x06} // 50 P
  ,{0x3e, 0x41, 0x51, 0x21, 0x5e} // 51 Q
  ,{0x7f, 0x09, 0x19, 0x29, 0x46} // 52 R
  ,{0x46, 0x49, 0x49, 0x49, 0x31} // 53 S
  ,{0x01, 0x01, 0x7f, 0x01, 0x01} // 54 T
  ,{0x3f, 0x40, 0x40, 0x40, 0x3f} // 55 U
  ,{0x1f, 0x20, 0x40, 0x20, 0x1f} // 56 V
  ,{0x3f, 0x40, 0x38, 0x40, 0x3f} // 57 W
  ,{0x63, 0x14, 0x08, 0x14, 0x63} // 58 X
  ,{0x07, 0x08, 0x70, 0x08, 0x07} // 59 Y
  ,{0x61, 0x51, 0x49, 0x45, 0x43} // 5a Z
  ,{0x00, 0x7f, 0x41, 0x41, 0x00} // 5b [
  ,{0x02, 0x04, 0x08, 0x10, 0x20} // 5c \
  ,{0x00, 0x41, 0x41, 0x7f, 0x00} // 5d ]
  ,{0x04, 0x02, 0x01, 0x02, 0x04} // 5e ^
  ,{0x40, 0x40, 0x40, 0x40, 0x40} // 5f _
  ,{0x00, 0x01, 0x02, 0x04, 0x00} // 60 `
  ,{0x20, 0x54, 0x54, 0x54, 0x78} // 61 a
  ,{0x7f, 0x48, 0x44, 0x44, 0x38} // 62 b
  ,{0x38, 0x44, 0x44, 0x44, 0x20} // 63 c
  ,{0x38, 0x44, 0x44, 0x48, 0x7f} // 64 d
  ,{0x38, 0x54, 0x54, 0x54, 0x18} // 65 e
  ,{0x08, 0x7e, 0x09, 0x01, 0x02} // 66 f
  ,{0x0c, 0x52, 0x52, 0x52, 0x3e} // 67 g
  ,{0x7f, 0x08, 0x04, 0x04, 0x78} // 68 h
  ,{0x00, 0x44, 0x7d, 0x40, 0x00} // 69 i
  ,{0x20, 0x40, 0x44, 0x3d, 0x00} // 6a j
  ,{0x7f, 0x10, 0x28, 0x44, 0x00} // 6b k
  ,{0x00, 0x41, 0x7f, 0x40, 0x00} // 6c l
  ,{0x7c, 0x04, 0x18, 0x04, 0x78} // 6d m
  ,{0x7c, 0x08, 0x04, 0x04, 0x78} // 6e n
  ,{0x38, 0x44, 0x44, 0x44, 0x38} // 6f o
  ,{0x7c, 0x14, 0x14, 0x14, 0x08} // 70 p
  ,{0x08, 0x14, 0x14, 0x18, 0x7c} // 71 q
  ,{0x7c, 0x08, 0x04, 0x04, 0x08} // 72 r
  ,{0x48, 0x54, 0x54, 0x54, 0x20} // 73 s
  ,{0x04, 0x3f, 0x44, 0x40, 0x20} // 74 t
  ,{0x3c, 0x40, 0x40, 0x20, 0x7c} // 75 u
  ,{0x1c, 0x20, 0x40, 0x20, 0x1c} // 76 v
  ,{0x3c, 0x40, 0x30, 0x40, 0x3c} // 77 w
  ,{0x44, 0x28, 0x10, 0x28, 0x44} // 78 x
  ,{0x0c, 0x50, 0x50, 0x50, 0x3c} // 79 y
  ,{0x44, 0x64, 0x54, 0x4c, 0x44} // 7a z
  ,{0x00, 0x08, 0x36, 0x41, 0x00} // 7b {
  ,{0x00, 0x00, 0x7f, 0x00, 0x00} // 7c |
  ,{0x00, 0x41, 0x36, 0x08, 0x00} // 7d }
  ,{0x10, 0x08, 0x08, 0x10, 0x08} // 7e ~
  ,{0x78, 0x46, 0x41, 0x46, 0x78} // 7f DEL
};

void setup(void) {
  LCDInit(); //Init the LCD
}

void loop(void) {
  LCDClear();
 // LCDBitmap(SFEFlame);
 // delay(1000);

 // LCDClear();
 // LCDBitmap(SFEFlameBubble);
 /// delay(1000);

//  LCDClear();
 // LCDBitmap(awesome);
 // delay(1000);

  //LCDClear();
  LCDString("Hello World!");
 // delay(1000);
}

void gotoXY(int x, int y) {
  LCDWrite(0, 0x80 | x);  // Column.
  LCDWrite(0, 0x40 | y);  // Row.  ?
}

//This takes a large array of bits and sends them to the LCD
void LCDBitmap(char my_array[]){
  for (int index = 0 ; index < (LCD_X * LCD_Y / 8) ; index++)
    LCDWrite(LCD_DATA, my_array[index]);
}

//This function takes in a character, looks it up in the font table/array
//And writes it to the screen
//Each character is 8 bits tall and 5 bits wide. We pad one blank column of
//pixels on each side of the character for readability.
void LCDCharacter(char character) {
  LCDWrite(LCD_DATA, 0x00); //Blank vertical line padding

  for (int index = 0 ; index < 5 ; index++)
    LCDWrite(LCD_DATA, ASCII[character - 0x20][index]);
    //0x20 is the ASCII character for Space (' '). The font table starts with this character

  LCDWrite(LCD_DATA, 0x00); //Blank vertical line padding
}

//Given a string of characters, one by one is passed to the LCD
void LCDString(char *characters) {
  while (*characters)
    LCDCharacter(*characters++);
}

//Clears the LCD by writing zeros to the entire screen
void LCDClear(void) {
  for (int index = 0 ; index < (LCD_X * LCD_Y / 8) ; index++)
    LCDWrite(LCD_DATA, 0x00);

  gotoXY(0, 0); //After we clear the display, return to the home position
}

//This sends the magical commands to the PCD8544
void LCDInit(void) {

  //Configure control pins
    TRISCbits.TRISC3=0;
    TRISCbits.TRISC4=0;
    TRISCbits.TRISC5=0;
    TRISCbits.TRISC6=0;
    TRISCbits.TRISC7=0;

    LCD_DIN=0;
    LCD_CLK=0;
    LCD_DC=0;

//  pinMode(PIN_SCE, OUTPUT);
//  pinMode(PIN_RESET, OUTPUT);
//  pinMode(PIN_DC, OUTPUT);
//  pinMode(PIN_SDIN, OUTPUT);
//  pinMode(PIN_SCLK, OUTPUT);

  //Reset the LCD to a known state
 // digitalWrite(PIN_RESET, LOW);
  LCD_RST=0;
  //  digitalWrite(PIN_RESET, HIGH);
  LCD_RST=1;

  LCDWrite(LCD_COMMAND, 0x21); //Tell LCD that extended commands follow
  LCDWrite(LCD_COMMAND, 0xBB); //Set LCD Vop (Contrast): Try 0xB1(good @ 3.3V) or 0xBF if your display is too dark
  LCDWrite(LCD_COMMAND, 0x04); //Set Temp coefficent
  LCDWrite(LCD_COMMAND, 0x14); //LCD bias mode 1:48: Try 0x13 or 0x14

  LCDWrite(LCD_COMMAND, 0x20); //We must send 0x20 before modifying the display control mode
  LCDWrite(LCD_COMMAND, 0x0C); //Set display control, normal mode. 0x0D for inverse
}

//There are two memory banks in the LCD, data/RAM and commands. This
//function sets the DC pin high or low depending, and then sends
//the data byte
void LCDWrite(unsigned char data_or_command, unsigned char data) {
  unsigned char i,d;

  d=data;
  if(data_or_command==0)LCD_DC=0;
  else LCD_DC=1;
  //data_or_command; //Tell the LCD that we are writing either to data or a command

  //Send the data
  LCD_CE=0;
//  digitalWrite(PIN_SCE, LOW);

  for(i=0;i<8;i++)
  {
  LCD_DIN=0;
  if(d&0x80)LCD_DIN=1;
  LCD_CLK=1;
  d<<=1;
  LCD_CLK=0;
  }
//  shiftOut(PIN_SDIN, PIN_SCLK, MSBFIRST, data);
  LCD_CE=1;
//  digitalWrite(PIN_SCE, HIGH);
}

void InitApp(void)
{
    /* TODO Initialize User Ports/Peripherals/Project here */

    /* Setup analog functionality and port direction */
    ANSELA=0;ANSELB=0;ANSELC=0;
    TRISA=0;TRISB=0;TRISC=0;
    /* Initialize peripherals */
    OPTION_REG=0x80;
    /* Enable interrupts */
    TMR0IE=1;
    GIE=1;

}
The code for color TFT is more lengthy, the principle is the same, its only different at some key points.

When 8bits are exceeded, it also becomes more complicated.
The code here only takes care one preprogrammed font size, which makes things easier.

When you exceed 8bit and have different sizes to select, you'll need more complex code, either to handle it, or to call the appropiate functions.

You'll also find for larger fonts/color you need to run the MCU faster and to optimize too, or you can watch the drawing process in slow motion.

The most recent text write code I have (for color TFT) was adapted to PIC32.

Implementing your own library, just a very basic one, could help to understand using ready made libraries.

Or just adaptig an existing one, mostly just change the IO assignment.
 

spinnaker

Joined Oct 29, 2009
7,830
OP,

This project might be just too much for you right now. As I mentioned in my first post you are probably not going to find exactly what you need. You will need to look at all of the information given to you and modify it to suit your exact needs.

You say you are a beginner. Have you tried more simple projects? Maybe one like writing to a much more simple display like the HDM08216?

Once you learn how to interface to more simple devices, really understand it, learn software / hardware troubleshooting then you can move up to a more complicated device like the Nokia.
 
Top