⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcm_s1d19105d00b.c.svn-base

📁 多个厂家的LCD 驱动程序
💻 SVN-BASE
字号:

#include "iMagicApi.h"
#include "LCM.h"
#include "UtilLcd.h"

//=================================================
//This file is for  --  PANEL MODULE Sekio Epson S1D19105D00B
//
//=================================================

#if (defined(_PRIMARY_LCM_S1D19105D00B) || defined(_SECONDARY_LCM_S1D19105D00B))

void S1D19105D00B_LCM_PowerOn(void)
{
    unsigned int u16Temp;
    #if 0
    //*(volatile unsigned char *)0x402D1 = 0x80;     // RESET =  H
    __TIMER_DELAY(50);
    //*(volatile unsigned char *)0x402D1 = 0x00;    // RESET =  " 0"
    __TIMER_DELAY(10);
    //*(volatile unsigned char *)0x402D1 = 0x80;    // RESET =    " 1 "
    __TIMER_DELAY(2);
    #endif

    LCM_WRITE_ADR = 0x9600;                        // VOSC On
    __TIMER_DELAY(20);
    LCM_WRITE_ADR = 0x9200;                        // OSC start

    // Display interface set
    LCM_WriteCmd(0x3100, 0x0000);
    LCM_WriteMemory(0x0000);

    // Gate Line Scan
    LCM_WriteCmd(0x6F00, 0x0200);
    LCM_WriteMemory(0x0000);
    LCM_WriteMemory(0xDB00);

    // Data Set
    LCM_WriteCmd(0xBC00, 0x0000);

    // Display Set
    LCM_WriteCmd(0xCA00, 0x0000);
    LCM_WriteMemory(0x3800);
    LCM_WriteMemory(0xC000);
    LCM_WriteMemory(0x4300);
    LCM_WriteMemory(0xDB00);
    LCM_WriteMemory(0x0000);
    LCM_WriteMemory(0x0700);
    LCM_WriteMemory(0x0700);
    LCM_WriteMemory(0x0000);

    // Display Timing Set
    #if 0
    LCM_WriteCmd(0xA1, 0x0000);
    LCM_WriteMemory(0x3800);
    LCM_WriteMemory(0x0500);
    LCM_WriteMemory(0x3300);
    #else
    LCM_WriteCmd(0xA100, 0x0200);
    LCM_WriteMemory(0x3600);
    LCM_WriteMemory(0x0400);
    LCM_WriteMemory(0x3400);
    #endif

    LCM_WriteMemory(0x0000);
    LCM_WriteMemory(0x0000);
    LCM_WriteMemory(0x0900);

    // Electron volume set
    LCM_WriteCmd(0x2000, 0x1700);
    LCM_WriteMemory(0x1000);
    LCM_WriteMemory(0x1000);
    LCM_WriteMemory(0x1A00);
    LCM_WriteMemory(0x1E00);
    LCM_WriteMemory(0x1600);
    LCM_WriteMemory(0x0000);
    LCM_WriteMemory(0x0300);

    // Power Control Set
    LCM_WriteCmd(0x2100, 0x3100);
    LCM_WriteMemory(0x3300);
    LCM_WriteMemory(0x0E00);
    LCM_WriteMemory(0x0F00);
    LCM_WriteMemory(0xAD00);
    LCM_WriteMemory(0xA000);
    LCM_WriteMemory(0x7700);
    LCM_WriteMemory(0xA500);
    LCM_WriteMemory(0x0100);
    LCM_WriteMemory(0xA500);
    LCM_WriteMemory(0x0100);
    LCM_WriteMemory(0x4400);
    LCM_WriteMemory(0x7700);

    // AC operation drive Frame inversion
    LCM_WriteCmd(0x8C00, 0x0100);
    LCM_WriteMemory(0x0000);

    // Display mode set
    LCM_WriteCmd(0x8B00, 0x0000);
    LCM_WriteMemory(0x0000);
    LCM_WriteMemory(0x7000);
    LCM_WriteMemory(0x6500);

    // Gamma correction set
    #if 0
    LCM_WriteCmd(0x2200, 0x3300);
    LCM_WriteMemory(0x7700);
    LCM_WriteMemory(0x6700);
    LCM_WriteMemory(0x1100);
    LCM_WriteMemory(0x4700);
    LCM_WriteMemory(0x0000);
    #else
    LCM_WriteCmd(0x2200, 0x3200);
    LCM_WriteMemory(0x0000);
    LCM_WriteMemory(0x4400);
    LCM_WriteMemory(0x4400);
    LCM_WriteMemory(0x4400);
    LCM_WriteMemory(0x4400);
    #endif

    // Partial power set
    LCM_WriteCmd(0x2300, 0x0300);
    LCM_WriteMemory(0x6500);
    LCM_WriteMemory(0x0F00);
    LCM_WriteMemory(0xAD00);
    LCM_WriteMemory(0xA000);
    LCM_WriteMemory(0x4400);
    LCM_WriteMemory(0x7700);

    // Sleep out
    LCM_WRITE_ADR = 0x9400;

    // Start address set
    LCM_WriteCmd(0x1500, 0x0000);
    LCM_WriteMemory(0x0000);

    // End address set
    LCM_WriteCmd(0x7500, 0xAF00);
    LCM_WriteMemory(0xDB00);

    // RAM Write
    LCM_WRITE_ADR = 0x5C00;

    // Partial display out
    LCM_WRITE_ADR = 0xA900;

    // RAM Write
    LCM_WRITE_ADR = 0x5C00;
    /*
    for (u16Temp = 0; u16Temp < (LCM_WIDTH * LCM_HEIGHT); u16Temp++)
        LCM_WriteMemory(0x0000);
    */
}



void S1D19105D00B_LCM_DisplayOn(void)
{
    // Display on
    LCM_WRITE_ADR = 0xAF00;                        // GRAM Write
    // Display data refresh
    LCM_WRITE_ADR = 0x5C00;
}



void S1D19105D00B_LCM_DisplayOff(void)
{

}



void S1D19105D00B_LCM_StandbyOn(void)
{
    LCM_WRITE_ADR = 0x4E00;
    __TIMER_DELAY(50);
    LCM_WRITE_ADR = 0x9300;
    __TIMER_DELAY(50);
    LCM_WRITE_ADR = 0x9700;
    __TIMER_DELAY(50);
}



void S1D19105D00B_LCM_StandbyOff(void)
{
    LCM_WRITE_ADR = 0x9600;
    __TIMER_DELAY(50);
    LCM_WRITE_ADR = 0x9200;
    __TIMER_DELAY(50);
}



void S1D19105D00B_LCM_AddressRefresh(void)
{
    // Display data refresh
    LCM_WRITE_ADR = 0x5C00;
    BBP_ShortDelay(_LCM_RW_DELAY_TIME);
}



void S1D19105D00B_LCM_Init(U08 bTargetLCM)
{
    iMagic_Release(bTargetLCM);
    S1D19105D00B_LCM_PowerOn();
    S1D19105D00B_LCM_DisplayOn();
}



void S1D19105D00B_LCM_Update(U08 bTargetLCM, U16 *pu16Buffer)
{
    unsigned short i,j;

    iMagic_Release(bTargetLCM);
    S1D19105D00B_LCM_AddressRefresh();

    LCM_WRITE_ADR = 0x5C00;                                // RAM Write Index
    BBP_ShortDelay(_LCM_RW_DELAY_TIME);

    for (i = 0; i < 220; i++)
    {
        for(j=0;j<176;j++)
        {
            LCM_WRITE_DAT= *(pu16Buffer + i * 176 + j);
            BBP_ShortDelay(_LCM_RW_DELAY_TIME);
        }
    }

    //iMagic_DisableBypass();
}

#endif                // #ifdef _LCM_S1D19105D00B

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -