Jump to content

TechNet

Members
  • Posts

    8
  • Joined

  • Last visited

Posts posted by TechNet

  1. Hi,

    I need help with this function. Can somebody write simple example how to use it? I know that it isn't too hard but I have problem with this :oops:

    And another question. Can you recommend good font converter with compatible format to uGFX (32 px height).

    I' m really thankful for yours help

  2. I have changed this

    /* Screen size */
    write_index(SSD1963_SET_GDISP_MODE);
    // write_data(0x0000);
    write_data(0b00011000); //Enabled dithering
    write_data(0x0000);
    write_data(mHIGH((GDISP_SCREEN_WIDTH+1)));
    write_data((GDISP_SCREEN_WIDTH+1));
    write_data(mHIGH((GDISP_SCREEN_HEIGHT+1)));
    write_data((GDISP_SCREEN_HEIGHT+1));
    write_data(0x0000);

    to this

    	/* Screen size */
    write_index(SSD1963_SET_GDISP_MODE);
    //write_data(0x0000);
    write_data(0b00011000); //Enabled dithering
    write_data(0x0000);
    write_data(mHIGH((GDISP_SCREEN_WIDTH-1)));
    write_data((GDISP_SCREEN_WIDTH-1));
    write_data(mHIGH((GDISP_SCREEN_HEIGHT-1)));
    write_data((GDISP_SCREEN_HEIGHT-1));
    write_data(0x0000);

    and it works perfect. However I wolud like to use 18 bit color, but when I turn it on I get red color instead of black. On 16BIT565 everything is fine.

  3. Hi,

    I have lately bought LCD panel like this http://www.ebay.com/itm/7-TFT-LCD-Modul ... 0963914141 but I can't make it work properly :x. The image is completly jagged. I rode this topic http://forum.chibios.org/phpbb/viewtopi ... =11&t=1133 but it didn't help. Panel is connected through 20 cm wires. I'm using FSMC.

    My gdisp_lld_panel.h

    Code:

    /*
    * This file is subject to the terms of the GFX License. If a copy of
    * the license was not distributed with this file, you can obtain one at:
    *
    * http://chibios-gfx.com/license.html
    */

    /**
    * @file drivers/gdisp/SSD1963/gdisp_lld_panel_example.h
    * @brief TFT LCD panel properties.
    *
    * @addtogroup GDISP
    * @{
    */

    #ifndef _GDISP_LLD_PANEL_H
    #define _GDISP_LLD_PANEL_H

    /* LCD panel specs */

    /* The timings need to follow the datasheet for your particular TFT/LCD screen (the actual screen, not the controller)
    *** Datasheets normally use a specific set of timings and acronyms, their value refers to the number of pixel clocks
    ** Non-display periods refer to pulses/timings that occur before or after the timings that actually put pixels on the screen
    ** Display periods refer to pulses/timings that directly put pixels on the screen
    HDP: Horizontal Display Period, normally the width - 1
    HT: Horizontal Total period (display + non-display)
    HPS: non-display period between the start of the horizontal sync (LLINE) signal and the first display data
    LPS: horizontal sync pulse (LLINE) start location in pixel clocks
    HPW: Horizontal sync Pulse Width
    VDP: Vertical Display period, normally height - 1
    VT: Vertical Total period (display + non-display)
    VPS: non-display period in lines between the start of the frame and the first display data in number of lines
    FPS: vertical sync pulse (LFRAME) start location in lines.
    VPW: Vertical sync Pulse Width

    *** Here's how to convert them:
    HPS = SCREEN_HSYNC_PULSE + SCREEN_HSYNC_BACK_PORCH
    HT - HPS = GDISP_SCREEN_WIDTH + SCREEN_HSYNC_FRONT_PORCH
    => SCREEN_HSYNC_FRONT_PORCH = ( HT - HPS ) - GDISP_SCREEN_WIDTH
    SCREEN_HSYNC_PULSE = HPW
    SCREEN_HSYNC_BACK_PORCH = HPS - HPW
    SCREEN_HSYNC_PERIOD = HT

    VPS = SCREEN_VSYNC_PULSE + SCREEN_VSYNC_BACK_PORCH
    VT - VPS = GDISP_SCREEN_HEIGHT + SCREEN_VSYNC_FRONT_PORCH
    => SCREEN_VSYNC_FRONT_PORCH = ( VT - VPS ) - GDISP_SCREEN_HEIGHT
    SCREEN_VSYNC_PULSE = VPW
    SCREEN_VSYNC_BACK_PORCH = VPS - LPS
    SCREEN_VSYNC_PERIOD = VT
    */

    #define SCREEN_FPS 60ULL


    #define GDISP_SCREEN_WIDTH 800
    #define GDISP_SCREEN_HEIGHT 480

    #define SCREEN_HSYNC_BACK_PORCH 46
    #define SCREEN_HSYNC_FRONT_PORCH 210
    #define SCREEN_HSYNC_PULSE 8

    #define SCREEN_VSYNC_BACK_PORCH 23
    #define SCREEN_VSYNC_FRONT_PORCH 22
    #define SCREEN_VSYNC_PULSE 8


    #define SCREEN_HSYNC_PERIOD (SCREEN_HSYNC_PULSE + SCREEN_HSYNC_BACK_PORCH + GDISP_SCREEN_WIDTH + SCREEN_HSYNC_FRONT_PORCH)
    #define SCREEN_VSYNC_PERIOD (SCREEN_VSYNC_PULSE + SCREEN_VSYNC_BACK_PORCH + GDISP_SCREEN_HEIGHT + SCREEN_VSYNC_FRONT_PORCH)

    #define SCREEN_PCLK (SCREEN_HSYNC_PERIOD * SCREEN_VSYNC_PERIOD * SCREEN_FPS)
    #define GDISP_FPR ((SCREEN_PCLK * 1048576)/100000000)

    #endif
    /** @} */

    Some photos:

    1. Image demo

    lo78.jpg

    2. Text demo

    2fb9.jpg

    3. Basics

    jqxi.jpg

    Please don't look at the colors, I have fixed them (RGB to BGR). But I still have pixels in random places or I haven't in other (for example ragged diagonal line or multicolored lines on right side on third image ).

    LCD datasheet is available here: http://propix.com.pl/pl/p/file/ec1058c5 ... 2_PV02.pdf. Please help me with it.

    PS. Sorry for my bad English.

×
×
  • Create New...