RuneHansen
Junior Member level 1

- Joined
- Mar 3, 2012
- Messages
- 18
- Helped
- 1
- Reputation
- 2
- Reaction score
- 1
- Trophy points
- 1,293
- Location
- Denmark, Sjælland, Kalundborg
- Activity points
- 1,398
Hey guys.
i have tried for some time now to get my project up and running, and its working fine, but the display font is the problem.
the one written in the program is 16x8 and it workes fine, but its too small for a display like the one im using.
im using the i2C 128x32 display with the SSD1306 driver.
the software im using is MikroC pro for Avr and the MCU is a Atmega328P
Here is the font that was created in "GLCD Font creater" Mikroe:
and here is the 8x16 font that works fine.
and here is the rest of the program
the problem is that the Verdana11x11 font dont work, its just displays random pixels :C. i have tryed everything! i think mayby it has something to do with the SSD1306_Chr16 part of the code???
can some of you guys help to make it work
it would mean alot to me
!
Thanks
Rune Hansen
Denmark.
i have tried for some time now to get my project up and running, and its working fine, but the display font is the problem.
the one written in the program is 16x8 and it workes fine, but its too small for a display like the one im using.
im using the i2C 128x32 display with the SSD1306 driver.
the software im using is MikroC pro for Avr and the MCU is a Atmega328P
Here is the font that was created in "GLCD Font creater" Mikroe:
Code:
const code char Verdana11x11[][23] = {
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
0x03, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char !
0x04, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char "
0x08, 0x00, 0x00, 0x40, 0x00, 0xC8, 0x01, 0x78, 0x00, 0xCE, 0x01, 0x78, 0x00, 0x4E, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char #
0x06, 0x00, 0x00, 0x18, 0x01, 0x24, 0x01, 0xFF, 0x07, 0x24, 0x01, 0xC4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char $
0x0B, 0x00, 0x00, 0x0C, 0x00, 0x12, 0x00, 0x12, 0x00, 0x8C, 0x01, 0x60, 0x00, 0x18, 0x00, 0xC6, 0x00, 0x20, 0x01, 0x20, 0x01, 0xC0, 0x00, // Code for char %
0x08, 0x00, 0x00, 0xEC, 0x00, 0x12, 0x01, 0x12, 0x01, 0x2C, 0x01, 0xC0, 0x00, 0xB0, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char &
0x02, 0x00, 0x00, 0x07, 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, 0xF8, 0x00, 0x06, 0x03, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char (
0x04, 0x00, 0x00, 0x01, 0x04, 0x06, 0x03, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char )
0x06, 0x00, 0x00, 0x0A, 0x00, 0x04, 0x00, 0x1F, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char *
0x08, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0xFC, 0x01, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char +
0x03, 0x00, 0x00, 0x00, 0x04, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ,
0x04, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char -
0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char .
0x05, 0x00, 0x03, 0xC0, 0x00, 0x30, 0x00, 0x0C, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char /
0x06, 0x00, 0x00, 0xFC, 0x00, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 0
0x06, 0x00, 0x00, 0x04, 0x01, 0x04, 0x01, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 1
0x06, 0x00, 0x00, 0x84, 0x01, 0x42, 0x01, 0x22, 0x01, 0x12, 0x01, 0x0C, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 2
0x06, 0x00, 0x00, 0x84, 0x00, 0x02, 0x01, 0x12, 0x01, 0x12, 0x01, 0xEC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 3
0x06, 0x60, 0x00, 0x50, 0x00, 0x48, 0x00, 0x44, 0x00, 0xFE, 0x01, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 4
0x06, 0x00, 0x00, 0x9E, 0x00, 0x12, 0x01, 0x12, 0x01, 0x12, 0x01, 0xE2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 5
0x06, 0x00, 0x00, 0xF8, 0x00, 0x14, 0x01, 0x12, 0x01, 0x12, 0x01, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 6
0x06, 0x00, 0x00, 0x02, 0x00, 0x82, 0x01, 0x62, 0x00, 0x1A, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 7
0x06, 0x00, 0x00, 0xEC, 0x00, 0x12, 0x01, 0x12, 0x01, 0x12, 0x01, 0xEC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 8
0x06, 0x00, 0x00, 0x1C, 0x00, 0x22, 0x01, 0x22, 0x01, 0xA2, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 9
0x03, 0x00, 0x00, 0x00, 0x00, 0x98, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char :
0x03, 0x00, 0x00, 0x00, 0x04, 0x98, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ;
0x07, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x50, 0x00, 0x50, 0x00, 0x88, 0x00, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char <
0x08, 0x00, 0x00, 0x50, 0x00, 0x50, 0x00, 0x50, 0x00, 0x50, 0x00, 0x50, 0x00, 0x50, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char =
0x08, 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, 0x88, 0x00, 0x50, 0x00, 0x50, 0x00, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char >
0x05, 0x00, 0x00, 0x02, 0x00, 0x62, 0x01, 0x12, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ?
0x09, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x01, 0x72, 0x02, 0x8A, 0x02, 0x8A, 0x02, 0x7A, 0x02, 0x82, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char @
0x07, 0x00, 0x00, 0xC0, 0x01, 0x78, 0x00, 0x46, 0x00, 0x46, 0x00, 0x78, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char A
0x07, 0x00, 0x00, 0xFE, 0x01, 0x12, 0x01, 0x12, 0x01, 0x12, 0x01, 0x1C, 0x01, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char B
0x08, 0x00, 0x00, 0x78, 0x00, 0x84, 0x00, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char C
0x08, 0x00, 0x00, 0xFE, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x84, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char D
0x06, 0x00, 0x00, 0xFE, 0x01, 0x12, 0x01, 0x12, 0x01, 0x12, 0x01, 0x12, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char E
0x06, 0x00, 0x00, 0xFE, 0x01, 0x12, 0x00, 0x12, 0x00, 0x12, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char F
0x08, 0x00, 0x00, 0x78, 0x00, 0x84, 0x00, 0x02, 0x01, 0x02, 0x01, 0x22, 0x01, 0x22, 0x01, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char G
0x07, 0x00, 0x00, 0xFE, 0x01, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0xFE, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char H
0x04, 0x00, 0x00, 0x02, 0x01, 0xFE, 0x01, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char I
0x04, 0x00, 0x01, 0x02, 0x01, 0x02, 0x01, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char J
0x07, 0x00, 0x00, 0xFE, 0x01, 0x20, 0x00, 0x30, 0x00, 0x48, 0x00, 0x84, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char K
0x06, 0x00, 0x00, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char L
0x08, 0x00, 0x00, 0xFE, 0x01, 0x06, 0x00, 0x18, 0x00, 0x60, 0x00, 0x18, 0x00, 0x06, 0x00, 0xFE, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char M
0x07, 0x00, 0x00, 0xFE, 0x01, 0x06, 0x00, 0x18, 0x00, 0x60, 0x00, 0x80, 0x01, 0xFE, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char N
0x08, 0x00, 0x00, 0x78, 0x00, 0x84, 0x00, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x84, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char O
0x06, 0x00, 0x00, 0xFE, 0x01, 0x22, 0x00, 0x22, 0x00, 0x22, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char P
0x08, 0x00, 0x00, 0x78, 0x00, 0x84, 0x00, 0x02, 0x01, 0x02, 0x01, 0x02, 0x03, 0x84, 0x04, 0x78, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Q
0x07, 0x00, 0x00, 0xFE, 0x01, 0x22, 0x00, 0x22, 0x00, 0x62, 0x00, 0x9C, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char R
0x07, 0x00, 0x00, 0x8C, 0x00, 0x12, 0x01, 0x12, 0x01, 0x22, 0x01, 0x22, 0x01, 0xC4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char S
0x07, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0xFE, 0x01, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char T
0x07, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char U
0x07, 0x00, 0x00, 0x0E, 0x00, 0x70, 0x00, 0x80, 0x01, 0x80, 0x01, 0x70, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char V
0x0A, 0x00, 0x00, 0x06, 0x00, 0x78, 0x00, 0x80, 0x01, 0x78, 0x00, 0x06, 0x00, 0x78, 0x00, 0x80, 0x01, 0x78, 0x00, 0x06, 0x00, 0x00, 0x00, // Code for char W
0x07, 0x00, 0x00, 0x86, 0x01, 0x48, 0x00, 0x30, 0x00, 0x30, 0x00, 0x48, 0x00, 0x86, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char X
0x07, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0xF0, 0x01, 0x08, 0x00, 0x04, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Y
0x07, 0x00, 0x00, 0x82, 0x01, 0x42, 0x01, 0x22, 0x01, 0x12, 0x01, 0x0A, 0x01, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Z
0x04, 0x00, 0x00, 0xFF, 0x07, 0x01, 0x04, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char [
0x05, 0x03, 0x00, 0x0C, 0x00, 0x30, 0x00, 0xC0, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char BackSlash
0x04, 0x00, 0x00, 0x01, 0x04, 0x01, 0x04, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ]
0x08, 0x00, 0x00, 0x10, 0x00, 0x08, 0x00, 0x04, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ^
0x07, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char _
0x04, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char `
0x06, 0x00, 0x00, 0xC0, 0x00, 0x28, 0x01, 0x28, 0x01, 0x28, 0x01, 0xF0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char a
0x06, 0x00, 0x00, 0xFF, 0x01, 0x08, 0x01, 0x08, 0x01, 0x08, 0x01, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char b
0x06, 0x00, 0x00, 0xF0, 0x00, 0x08, 0x01, 0x08, 0x01, 0x08, 0x01, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char c
0x06, 0x00, 0x00, 0xF0, 0x00, 0x08, 0x01, 0x08, 0x01, 0x08, 0x01, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char d
0x06, 0x00, 0x00, 0xF0, 0x00, 0x28, 0x01, 0x28, 0x01, 0x28, 0x01, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char e
0x04, 0x08, 0x00, 0xFE, 0x01, 0x09, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char f
0x06, 0x00, 0x00, 0xF0, 0x00, 0x08, 0x05, 0x08, 0x05, 0x08, 0x05, 0xF8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char g
0x06, 0x00, 0x00, 0xFF, 0x01, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0xF0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char h
0x02, 0x00, 0x00, 0xF9, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char i
0x03, 0x00, 0x04, 0x08, 0x04, 0xF9, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char j
0x06, 0x00, 0x00, 0xFF, 0x01, 0x40, 0x00, 0x60, 0x00, 0x90, 0x00, 0x08, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char k
0x02, 0x00, 0x00, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char l
0x0A, 0x00, 0x00, 0xF8, 0x01, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0xF0, 0x01, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0xF0, 0x01, 0x00, 0x00, // Code for char m
0x06, 0x00, 0x00, 0xF8, 0x01, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0xF0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char n
0x06, 0x00, 0x00, 0xF0, 0x00, 0x08, 0x01, 0x08, 0x01, 0x08, 0x01, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char o
0x06, 0x00, 0x00, 0xF8, 0x07, 0x08, 0x01, 0x08, 0x01, 0x08, 0x01, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char p
0x06, 0x00, 0x00, 0xF0, 0x00, 0x08, 0x01, 0x08, 0x01, 0x08, 0x01, 0xF8, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char q
0x05, 0x00, 0x00, 0xF8, 0x01, 0x10, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char r
0x05, 0x00, 0x00, 0x30, 0x01, 0x28, 0x01, 0x48, 0x01, 0xC8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char s
0x04, 0x08, 0x00, 0xFE, 0x00, 0x08, 0x01, 0x08, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char t
0x06, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0xF8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char u
0x06, 0x00, 0x00, 0x18, 0x00, 0x60, 0x00, 0x80, 0x01, 0x60, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char v
0x08, 0x00, 0x00, 0x78, 0x00, 0x80, 0x01, 0x60, 0x00, 0x18, 0x00, 0x60, 0x00, 0x80, 0x01, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char w
0x06, 0x00, 0x00, 0x08, 0x01, 0x90, 0x00, 0x60, 0x00, 0x90, 0x00, 0x08, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char x
0x06, 0x00, 0x00, 0x08, 0x00, 0x70, 0x04, 0x80, 0x03, 0x70, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char y
0x05, 0x00, 0x00, 0x88, 0x01, 0x48, 0x01, 0x28, 0x01, 0x18, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char z
0x06, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0xDE, 0x03, 0x01, 0x04, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char {
0x03, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char |
0x06, 0x00, 0x00, 0x01, 0x04, 0x01, 0x04, 0xDE, 0x03, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char }
0x08, 0x00, 0x00, 0x60, 0x00, 0x10, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x40, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ~
0x03, 0xFE, 0x01, 0x02, 0x01, 0xFE, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // Code for char
};
and here is the 8x16 font that works fine.
Code:
const code char SSD1306_Font8x16[][16] = {
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0
......
......
on and on. THIS FONT WORKS, but is too small :)
};
and here is the rest of the program
Code:
void SSD1306_Cmd( unsigned char temp ) {
TWI_Start();
TWI_Write( 0x78 );
TWI_Write( 0x00 );
TWI_Write( temp );
TWI_Stop();
}
void SSD1306_Data( unsigned char temp ) {
TWI_Start();
TWI_Write( 0x78 );
TWI_Write( 0x40 );
TWI_Write( temp );
TWI_Stop();
}
void SSD1306_Init() {
OLED_RST = 0;
OLED_RST1 = 0;
Delay_ms(10);
OLED_RST = 1;
OLED_RST1 = 1;
Delay_ms(10);
SSD1306_Cmd(0xAE); // display off
SSD1306_Cmd(0x00);
SSD1306_Cmd(0x00);
SSD1306_Cmd(0x40);
SSD1306_Cmd(0x81);
SSD1306_Cmd(0xCF);
SSD1306_Cmd(0xA1);
SSD1306_Cmd(0xC8);
SSD1306_Cmd(0xA6);
SSD1306_Cmd(0xA8);
SSD1306_Cmd(0x3F);
SSD1306_Cmd(0xD3);
SSD1306_Cmd(0x00);
SSD1306_Cmd(0xD5);
SSD1306_Cmd(0x80);
SSD1306_Cmd(0xD9);
SSD1306_Cmd(0xF1);
SSD1306_Cmd(0xDA);
SSD1306_Cmd(0x12);
SSD1306_Cmd(0xDB);
SSD1306_Cmd(0x40);
SSD1306_Cmd(0x20);
SSD1306_Cmd(0x02);
SSD1306_Cmd(0x8D);
SSD1306_Cmd(0x14);
SSD1306_Cmd(0xA4);
SSD1306_Cmd(0xA6);
SSD1306_Cmd(0xAF);
/*
SSD1306_Cmd( SSD1306_DISPLAYOFF ); //Display Off
SSD1306_Cmd( SSD1306_SETMULTIPLEXRATIO ); //Multiplex Ratio
SSD1306_Cmd( 0x3F );
SSD1306_Cmd( SSD1306_SETDISPLAYOFFSET ); //Display Offset
SSD1306_Cmd( 0x00 );
SSD1306_Cmd( SSD1306_SETSTARTLINE ); //Display Start Line
SSD1306_Cmd( SSD1306_SEGREMAP | 0x01 );
SSD1306_Cmd( SSD1306_COMSCANDEC ); //COM Output Scan Direction
SSD1306_Cmd( SSD1306_SETCOMPINS ); //COM Pins Hardware Configuration
SSD1306_Cmd( 0x12 );
SSD1306_Cmd( SSD1306_SETCONTRAST ); //Contrast Control
SSD1306_Cmd( 255 );
SSD1306_Cmd( SSD1306_ENTIREDISPLAYON_RESUME ); //Entire Display On/Off
SSD1306_Cmd( SSD1306_NORMALDISPLAY ); //Normal/Inverse Display
SSD1306_Cmd( SSD1306_SETDISPLAYCLOCKDIV ); //Display Clock Divide Ratio/Oscillator Frequency
SSD1306_Cmd( 0x80 );
SSD1306_Cmd( SSD1306_SETPRECHARGE ); //Pre-Charge Period
SSD1306_Cmd( 0x25 );
SSD1306_Cmd( SSD1306_SETVCOMDETECT ); //VCOMH Deselect Level
SSD1306_Cmd( 0x20 );
SSD1306_Cmd( SSD1306_PAGEADDR );
SSD1306_Cmd( 0 );
SSD1306_Cmd( 7 );
SSD1306_Cmd( 0xB0 );
SSD1306_Cmd( 0x10 );
SSD1306_Cmd( 0x00 );
SSD1306_Cmd( SSD1306_MEMORYMODE );
SSD1306_Cmd( 0x00 );
SSD1306_Cmd( SSD1306_CHARGEPUMP ); //Charge Pump
SSD1306_Cmd( 0x14 ); //Enable Charge Pump
SSD1306_Cmd( SSD1306_DISPLAYON ); //Display On
*/
}
void SSD1306_Set_Cursor( char row, char col ) {
SSD1306_Cmd( SSD1306_PAGESTARTADDR | row );
SSD1306_Cmd( ( SSD1306_SETHIGHCOLUMN | ( col >> 4 )) );
SSD1306_Cmd( ( 0x0f & col ));
}
void SSD1306_Set_Contrast( char value ) {
SSD1306_Cmd( SSD1306_SETCONTRAST );
SSD1306_Cmd( value );
}
void SSD1306_Chr( char wChar, char color ) {
char i;
wChar = wChar - 0x20;
color = color ? 0x00 : 0xFF;
for( i = 0; i < 8; i++ )
SSD1306_Data( SSD1306_Font8x8[wChar][i] ^ color );
}
void SSD1306_Chr8( char row, char col, char wChar, char color ) {
SSD1306_Set_Cursor( row, col << 3 );
SSD1306_Chr( wChar, color );
}
void SSD1306_Chr16( char row, char col, char wChar, char color ) {
char i;
col <<= 3;
SSD1306_Set_Cursor( row++, col );
wChar = wChar - 0x20;
color = color ? 0x00 : 0xFF;
for( i = 0; i < 11; i++ )
SSD1306_Data( Verdana11x11[wChar][i] ^ color );
SSD1306_Set_Cursor( row, col );
for( i = 11; i < 11; i++ ){
SSD1306_Data( Verdana11x11[wChar][i] ^ color );
}
}
void SSD1306_Out8( char row, char col, char *text, char color ) {
SSD1306_Set_Cursor( row, col << 3 );
while( *text )
SSD1306_Chr( *text++, color );
}
void SSD1306_Out16( char row, char col, char *text, char color ) {
while( *text )
SSD1306_Chr16( row, col++, *text++, color );
}
void SSD1306_Image( const char *bmp, char color ) {
char x, y;
color = color ? 0x00 : 0xFF;
for( y = 0; y < 8; y++ ) {
SSD1306_Set_Cursor( y, 0 );
TWI_Start();
TWI_Write( 0x78 );
TWI_Write( 0b1100000 );
for( x = 0; x < 128; x++ )
TWI_Write( *bmp++ ^ color );
TWI_Stop();
}
}
void SSD1306_Fill( char color ) {
char x, y;
for( y = 0; y < 8; y++ ) {
SSD1306_Set_Cursor( y, 0 );
TWI_Start();
TWI_Write( 0x78 );
TWI_Write( 0b1100000 );
for( x = 0; x < 128; x++ )
TWI_Write( color );
TWI_Stop();
}
}
the problem is that the Verdana11x11 font dont work, its just displays random pixels :C. i have tryed everything! i think mayby it has something to do with the SSD1306_Chr16 part of the code???
can some of you guys help to make it work
it would mean alot to me
Thanks
Rune Hansen
Denmark.