Graphical Displays with PBP3


+ Reply to Thread
Results 1 to 40 of 96

Hybrid View

  1. #1
    Join Date
    Dec 2010
    Location
    Melbourne Australia
    Posts
    137


    Did you find this post helpful? Yes | No

    Default Re: Graphical Displays with PBP3

    Well, there's 2 things I never considered - (1) using the upper 4 data lines for transfer and (2) grounding the unused.
    It's probably worth mentioning (for a heads up to others) the display I'm using has a serial/parallel 3 pad jumper on the back that was soldered to parallel setting as purchased. I needed to change that to serial in order to operate in serial mode. Whether that eliminates the need to pull/push the PSB pad I never bothered finding out - I just assumed the PSB pad still needed setting.

    edit: just after posting that I realised that jumper is probably a direct link to the PSB pad to push or pull - duh.

    Troy
    Last edited by rocket_troy; - 21st September 2022 at 02:37.

  2. #2
    Join Date
    Dec 2010
    Location
    Melbourne Australia
    Posts
    137


    Did you find this post helpful? Yes | No

    Default Re: Graphical Displays with PBP3

    Richard,
    Is it a big deal adding a character like a colon to the large font table? Working out the dot matrix for the character should be pretty straight forward, but not sure about the indexing and whatnot?

    Thanks,

    Troy

  3. #3
    Join Date
    May 2013
    Location
    australia
    Posts
    2,392


    Did you find this post helpful? Yes | No

    Default Re: Graphical Displays with PBP3

    you can use your own fonts Generated by MikroElektronika GLCD Font Creator 1.2.0.0
    the font headers have some basic details on how to pbp-ify MikroElektronika fonts


    ;//Font Generated by MikroElektronika GLCD Font Creator 1.2.0.0
    ;//MikroElektrnika 2011
    ;//http://www.mikroe.com
    ;
    ;//GLCD FontName : Comic_Sans_MS10x14
    ;//GLCD FontSize : 10 x 14
    ; needs a few tweaks for pbp weaknesses
    ;no odd data lines allowed ,shift bytes up to even lines out , no commas on line ends
    ;do not add or remove any bytes
    ;const char bignum[] = {
    Warning I'm not a teacher

  4. #4
    Join Date
    Dec 2010
    Location
    Melbourne Australia
    Posts
    137


    Did you find this post helpful? Yes | No

    Default Re: Graphical Displays with PBP3

    I've just tried that but I'm confused: I can pick a standard font and make something up from that using the tool, but what do I do then? Do I "export" it? Exporting, produces the matrix of hex codes for the font graphics but that's all it produces. The largenum and bigchar files you included have many lines of headers? footers? whatever... above and below the font dot matrix codes and the export button that I'm clicking doesn't appear to generate any of that and it's not really clear what those lines are?

    Regards,

    Troy

  5. #5
    Join Date
    May 2013
    Location
    australia
    Posts
    2,392


    Did you find this post helpful? Yes | No

    Default Re: Graphical Displays with PBP3

    Warning I'm not a teacher

  6. #6
    Join Date
    Dec 2010
    Location
    Melbourne Australia
    Posts
    137


    Did you find this post helpful? Yes | No

    Default Re: Graphical Displays with PBP3

    Thanks. That link eventually lead to the TFT export option needing to be visible to click on. Alas, that appears not useful without some kind of description of what those headers represent. Intuitively I would've thought they'd be some kind of memory addressing but they can't be. The 1st column looks like the font width but no idea what the second byte represents?

    Regards,

    Troy

  7. #7
    Join Date
    May 2013
    Location
    australia
    Posts
    2,392


    Did you find this post helpful? Yes | No

    Default Re: Graphical Displays with PBP3

    you need to be more explicit, i cannot see the problem

    here is the raw " C " code as exported for chrs 48 to 60 as 11 x 16 sized font

    you simply need to make it comply with pbp limitations , thats it you don't have to understand it
    its pretty simple anyway

    0x00, unused
    0x00, unused
    0x30,0x00, first chr
    0x3C,0x00, last chr
    0x10, height
    0x00,

    0x0B,0x3C,0x00,0x00, width of chr1. offset to font data for chr 1
    0x0A,0x5C,0x00,0x00, width of chr2. offset to font data for chr2
    0x0B,0x7C,0x00,0x00, width of chr3. offset to font data for chr 3
    ...



    Code:
    //Font Generated by MikroElektronika GLCD Font Creator 1.2.0.0
    //MikroElektrnika 2011 
    //http://www.mikroe.com 
    
    
    //GLCD FontName : Terminal11x16
    //GLCD FontSize : 11 x 16
    
    
    const unsigned short Terminal11x16[] = {
       0x00,
       0x00,
       0x30,0x00,
       0x3C,0x00,
       0x10,
       0x00,
       0x0B,0x3C,0x00,0x00,
       0x0A,0x5C,0x00,0x00,
       0x0B,0x7C,0x00,0x00,
       0x0B,0x9C,0x00,0x00,
       0x0B,0xBC,0x00,0x00,
       0x0B,0xDC,0x00,0x00,
       0x0B,0xFC,0x00,0x00,
       0x0B,0x1C,0x01,0x00,
       0x0B,0x3C,0x01,0x00,
       0x0B,0x5C,0x01,0x00,
       0x06,0x7C,0x01,0x00,
       0x06,0x8C,0x01,0x00,
       0x09,0x9C,0x01,0x00,
       0xF8,0x00,0xFE,0x03,0x06,0x03,0x03,0x07,0x83,0x07,0xC3,0x06,0x63,0x06,0x33,0x06,0x1B,0x06,0x0F,0x06,0x07,0x06,0x06,0x03,0xFE,0x03,0xF8,0x00,0x00,0x00,0x00,0x00, // Code for char num 48
       0x60,0x00,0x70,0x00,0x7C,0x00,0x7C,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0xFC,0x03,0xFC,0x03,0x00,0x00,0x00,0x00, // Code for char num 49
       0xFC,0x01,0xFE,0x03,0x07,0x07,0x03,0x06,0x03,0x07,0x80,0x03,0xC0,0x01,0xE0,0x00,0x70,0x00,0x38,0x00,0x1C,0x00,0x0E,0x00,0xFF,0x07,0xFF,0x07,0x00,0x00,0x00,0x00, // Code for char num 50
       0xFC,0x01,0xFE,0x03,0x07,0x07,0x03,0x06,0x00,0x06,0x00,0x07,0xF8,0x03,0xF8,0x01,0x00,0x03,0x00,0x06,0x03,0x06,0x07,0x07,0xFE,0x03,0xFC,0x01,0x00,0x00,0x00,0x00, // Code for char num 51
       0xC0,0x01,0xE0,0x01,0xF0,0x01,0xB8,0x01,0x9C,0x01,0x8E,0x01,0x87,0x01,0x83,0x01,0xFF,0x07,0xFF,0x07,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x00,0x00,0x00,0x00, // Code for char num 52
       0xFF,0x07,0xFF,0x07,0x03,0x00,0x03,0x00,0x03,0x00,0xFF,0x01,0xFE,0x03,0x00,0x07,0x00,0x06,0x00,0x06,0x03,0x06,0x07,0x07,0xFE,0x03,0xFC,0x01,0x00,0x00,0x00,0x00, // Code for char num 53
       0xE0,0x01,0xF0,0x01,0x38,0x00,0x1C,0x00,0x0E,0x00,0x06,0x00,0xFF,0x01,0xFF,0x03,0x07,0x07,0x03,0x06,0x03,0x06,0x07,0x07,0xFE,0x03,0xFC,0x01,0x00,0x00,0x00,0x00, // Code for char num 54
       0xFF,0x07,0xFF,0x07,0x00,0x03,0x00,0x03,0x80,0x01,0x80,0x01,0xC0,0x00,0xC0,0x00,0x60,0x00,0x60,0x00,0x30,0x00,0x30,0x00,0x18,0x00,0x18,0x00,0x00,0x00,0x00,0x00, // Code for char num 55
       0xF8,0x00,0xFC,0x01,0x8E,0x03,0x06,0x03,0x06,0x03,0x8E,0x03,0xFC,0x01,0xFE,0x03,0x07,0x07,0x03,0x06,0x03,0x06,0x07,0x07,0xFE,0x03,0xFC,0x01,0x00,0x00,0x00,0x00, // Code for char num 56
       0xFC,0x01,0xFE,0x03,0x07,0x07,0x03,0x06,0x03,0x06,0x07,0x07,0xFE,0x07,0xFC,0x07,0x00,0x03,0x80,0x03,0xC0,0x01,0xE0,0x00,0x7C,0x00,0x3C,0x00,0x00,0x00,0x00,0x00, // Code for char num 57
       0x00,0x00,0x00,0x00,0x38,0x38,0x38,0x00,0x00,0x00,0x38,0x38,0x38,0x00,0x00,0x00, // Code for char num 58
       0x00,0x00,0x00,0x00,0x38,0x38,0x38,0x00,0x00,0x00,0x38,0x38,0x38,0x30,0x30,0x18, // Code for char num 59
       0x80,0x01,0xC0,0x01,0xE0,0x00,0x70,0x00,0x38,0x00,0x1C,0x00,0x0E,0x00,0x0E,0x00,0x1C,0x00,0x38,0x00,0x70,0x00,0xE0,0x00,0xC0,0x01,0x80,0x01,0x00,0x00,0x00,0x00 // Code for char num 60
            };
    becomes

    Code:
    ;//Font Generated by MikroElektronika GLCD Font Creator 1.2.0.0
    ;//MikroElektrnika 2011 
    ;//http://www.mikroe.com 
    ;
    ;//GLCD FontName : Terminal11x16
    ;//GLCD FontSize : 11 x 16
    ;
    ;const unsigned short Terminal11x16[] = {
       0x00,0x00
       
       0x30,0x00
       0x3C,0x00
       0x10,0x00
       
       0x0B,0x3C,0x00,0x00
       0x0A,0x5C,0x00,0x00
       0x0B,0x7C,0x00,0x00
       0x0B,0x9C,0x00,0x00
       0x0B,0xBC,0x00,0x00
       0x0B,0xDC,0x00,0x00
       0x0B,0xFC,0x00,0x00
       0x0B,0x1C,0x01,0x00
       0x0B,0x3C,0x01,0x00
       0x0B,0x5C,0x01,0x00
       0x06,0x7C,0x01,0x00
       0x06,0x8C,0x01,0x00
       0x09,0x9C,0x01,0x00
       0xF8,0x00,0xFE,0x03,0x06,0x03,0x03,0x07,0x83,0x07,0xC3,0x06,0x63,0x06,0x33,0x06,0x1B,0x06,0x0F,0x06,0x07,0x06,0x06,0x03,0xFE,0x03,0xF8,0x00,0x00,0x00,0x00,0x00 ; Code for char num 48
       0x60,0x00,0x70,0x00,0x7C,0x00,0x7C,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0xFC,0x03,0xFC,0x03,0x00,0x00,0x00,0x00 ; Code for char num 49
       0xFC,0x01,0xFE,0x03,0x07,0x07,0x03,0x06,0x03,0x07,0x80,0x03,0xC0,0x01,0xE0,0x00,0x70,0x00,0x38,0x00,0x1C,0x00,0x0E,0x00,0xFF,0x07,0xFF,0x07,0x00,0x00,0x00,0x00 ; Code for char num 50
       0xFC,0x01,0xFE,0x03,0x07,0x07,0x03,0x06,0x00,0x06,0x00,0x07,0xF8,0x03,0xF8,0x01,0x00,0x03,0x00,0x06,0x03,0x06,0x07,0x07,0xFE,0x03,0xFC,0x01,0x00,0x00,0x00,0x00 ; Code for char num 51
       0xC0,0x01,0xE0,0x01,0xF0,0x01,0xB8,0x01,0x9C,0x01,0x8E,0x01,0x87,0x01,0x83,0x01,0xFF,0x07,0xFF,0x07,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x00,0x00,0x00,0x00 ; Code for char num 52
       0xFF,0x07,0xFF,0x07,0x03,0x00,0x03,0x00,0x03,0x00,0xFF,0x01,0xFE,0x03,0x00,0x07,0x00,0x06,0x00,0x06,0x03,0x06,0x07,0x07,0xFE,0x03,0xFC,0x01,0x00,0x00,0x00,0x00 ; Code for char num 53
       0xE0,0x01,0xF0,0x01,0x38,0x00,0x1C,0x00,0x0E,0x00,0x06,0x00,0xFF,0x01,0xFF,0x03,0x07,0x07,0x03,0x06,0x03,0x06,0x07,0x07,0xFE,0x03,0xFC,0x01,0x00,0x00,0x00,0x00 ; Code for char num 54
       0xFF,0x07,0xFF,0x07,0x00,0x03,0x00,0x03,0x80,0x01,0x80,0x01,0xC0,0x00,0xC0,0x00,0x60,0x00,0x60,0x00,0x30,0x00,0x30,0x00,0x18,0x00,0x18,0x00,0x00,0x00,0x00,0x00 ; Code for char num 55
       0xF8,0x00,0xFC,0x01,0x8E,0x03,0x06,0x03,0x06,0x03,0x8E,0x03,0xFC,0x01,0xFE,0x03,0x07,0x07,0x03,0x06,0x03,0x06,0x07,0x07,0xFE,0x03,0xFC,0x01,0x00,0x00,0x00,0x00 ; Code for char num 56
       0xFC,0x01,0xFE,0x03,0x07,0x07,0x03,0x06,0x03,0x06,0x07,0x07,0xFE,0x07,0xFC,0x07,0x00,0x03,0x80,0x03,0xC0,0x01,0xE0,0x00,0x7C,0x00,0x3C,0x00,0x00,0x00,0x00,0x00 ; Code for char num 57
       0x00,0x00,0x00,0x00,0x38,0x38,0x38,0x00,0x00,0x00,0x38,0x38,0x38,0x00,0x00,0x00 ; Code for char num 58
       0x00,0x00,0x00,0x00,0x38,0x38,0x38,0x00,0x00,0x00,0x38,0x38,0x38,0x30,0x30,0x18 ; Code for char num 59
       0x80,0x01,0xC0,0x01,0xE0,0x00,0x70,0x00,0x38,0x00,0x1C,0x00,0x0E,0x00,0x0E,0x00,0x1C,0x00,0x38,0x00,0x70,0x00,0xE0,0x00,0xC0,0x01,0x80,0x01,0x00,0x00,0x00,0x00 ; Code for char num 60
    ;        };
    Warning I'm not a teacher

  8. #8
    Join Date
    May 2013
    Location
    australia
    Posts
    2,392


    Did you find this post helpful? Yes | No

    Default Re: Graphical Displays with PBP3

    post#1

    i wrote this graphics lib to handle led dmd's [1/4 scan dot matrix displays] in mono, red/green or rgb in varing sizes up to 128x32 pixels.
    it occured to me that with a little more effort it would make a general purpose graphic lib for nearly any display. so here it is.
    it uses mikroe fonts that you can easily generate. the variable width fonts can be up to 23 bits wide if you like.
    no guarantee 24 bit wide will be reliable either
    Warning I'm not a teacher

  9. #9
    Join Date
    Dec 2010
    Location
    Melbourne Australia
    Posts
    137


    Did you find this post helpful? Yes | No

    Default Re: Graphical Displays with PBP3

    Okay, so fixed widths can have a wider limitation?

    Troy

  10. #10
    Join Date
    May 2013
    Location
    australia
    Posts
    2,392


    Did you find this post helpful? Yes | No

    Default Re: Graphical Displays with PBP3

    no there are no fixed width fonts not that that would alter anything.
    the mask is 32bits wide that is used to insert the font row data into the graphics frame memory, 23 bits font + 8 bits to allow insertion at any bit point offset + 1 clr column between chars = 32 bits. to get to 24 bits the mask would need to be 48 bits wide [needs 16 bits to allow insertion at any bit point offset], the code size would double the speed halve. any font over 23 bits wide will intrude on its neighboring chars space at some bit offsets
    Last edited by richard; - 24th October 2022 at 06:22.
    Warning I'm not a teacher

  11. #11
    Join Date
    Dec 2010
    Location
    Melbourne Australia
    Posts
    137


    Did you find this post helpful? Yes | No

    Default Re: Graphical Displays with PBP3

    Thanks Richard, that clears that up. No biggy anyway.

    edit: actually the one working fine was 18x24 (I was mixing up the width & height)

    Troy
    Last edited by rocket_troy; - 24th October 2022 at 06:32.

Similar Threads

  1. Replies: 3
    Last Post: - 1st January 2021, 21:28
  2. problem using Graphical LCD
    By Mostafa in forum mel PIC BASIC Pro
    Replies: 5
    Last Post: - 18th July 2007, 18:15
  3. Graphical LCDs
    By T.Jackson in forum General
    Replies: 5
    Last Post: - 14th May 2007, 06:29
  4. Vb 6.0 Graphical plug in
    By rocky79 in forum Serial
    Replies: 0
    Last Post: - 8th March 2006, 18:42
  5. Graphical user interface
    By rocky79 in forum mel PIC BASIC Pro
    Replies: 13
    Last Post: - 15th October 2005, 12:25

Members who have read this thread : 18

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