Copy of gc9306.docx
《Copy of gc9306.docx》由会员分享,可在线阅读,更多相关《Copy of gc9306.docx(19页珍藏版)》请在冰点文库上搜索。
Copyofgc9306
/*CopyrightStatement:
*
*Thissoftware/firmwareandrelateddocumentation("MediaTekSoftware")are
*protectedunderrelevantcopyrightlaws.Theinformationcontainedherein
*isconfidentialandproprietarytoMediaTekInc.and/oritslicensors.
*WithoutthepriorwrittenpermissionofMediaTekinc.and/oritslicensors,
*anyreproduction,modification,useordisclosureofMediaTekSoftware,
*andinformationcontainedherein,inwholeorinpart,shallbestrictlyprohibited.
*/
/*MediaTekInc.(C)2010.Allrightsreserved.
*
*BYOPENINGTHISFILE,RECEIVERHEREBYUNEQUIVOCALLYACKNOWLEDGESANDAGREES
*THATTHESOFTWARE/FIRMWAREANDITSDOCUMENTATIONS("MEDIATEKSOFTWARE")
*RECEIVEDFROMMEDIATEKAND/ORITSREPRESENTATIVESAREPROVIDEDTORECEIVERON
*AN"AS-IS"BASISONLY.MEDIATEKEXPRESSLYDISCLAIMSANYANDALLWARRANTIES,
*EXPRESSORIMPLIED,INCLUDINGBUTNOTLIMITEDTOTHEIMPLIEDWARRANTIESOF
*MERCHANTABILITY,FITNESSFORAPARTICULARPURPOSEORNONINFRINGEMENT.
*NEITHERDOESMEDIATEKPROVIDEANYWARRANTYWHATSOEVERWITHRESPECTTOTHE
*SOFTWAREOFANYTHIRDPARTYWHICHMAYBEUSEDBY,INCORPORATEDIN,OR
*SUPPLIEDWITHTHEMEDIATEKSOFTWARE,ANDRECEIVERAGREESTOLOOKONLYTOSUCH
*THIRDPARTYFORANYWARRANTYCLAIMRELATINGTHERETO.RECEIVEREXPRESSLYACKNOWLEDGES
*THATITISRECEIVER'SSOLERESPONSIBILITYTOOBTAINFROMANYTHIRDPARTYALLPROPERLICENSES
*CONTAINEDINMEDIATEKSOFTWARE.MEDIATEKSHALLALSONOTBERESPONSIBLEFORANYMEDIATEK
*SOFTWARERELEASESMADETORECEIVER'SSPECIFICATIONORTOCONFORMTOAPARTICULAR
*STANDARDOROPENFORUM.RECEIVER'SSOLEANDEXCLUSIVEREMEDYANDMEDIATEK'SENTIREAND
*CUMULATIVELIABILITYWITHRESPECTTOTHEMEDIATEKSOFTWARERELEASEDHEREUNDERWILLBE,
*ATMEDIATEK'SOPTION,TOREVISEORREPLACETHEMEDIATEKSOFTWAREATISSUE,
*ORREFUNDANYSOFTWARELICENSEFEESORSERVICECHARGEPAIDBYRECEIVERTO
*MEDIATEKFORSUCHMEDIATEKSOFTWAREATISSUE.
*
*Thefollowingsoftware/firmwareand/orrelateddocumentation("MediaTekSoftware")
*havebeenmodifiedbyMediaTekInc.Allrevisionsaresubjecttoanyreceiver's
*applicablelicenseagreementswithMediaTekInc.
*/
/*****************************************************************************
*CopyrightStatement:
*--------------------
*ThissoftwareisprotectedbyCopyrightandtheinformationcontained
*hereinisconfidential.Thesoftwaremaynotbecopiedandtheinformation
*containedhereinmaynotbeusedordisclosedexceptwiththewritten
*permissionofMediaTekInc.(C)2008
*
*BYOPENINGTHISFILE,BUYERHEREBYUNEQUIVOCALLYACKNOWLEDGESANDAGREES
*THATTHESOFTWARE/FIRMWAREANDITSDOCUMENTATIONS("MEDIATEKSOFTWARE")
*RECEIVEDFROMMEDIATEKAND/ORITSREPRESENTATIVESAREPROVIDEDTOBUYERON
*AN"AS-IS"BASISONLY.MEDIATEKEXPRESSLYDISCLAIMSANYANDALLWARRANTIES,
*EXPRESSORIMPLIED,INCLUDINGBUTNOTLIMITEDTOTHEIMPLIEDWARRANTIESOF
*MERCHANTABILITY,FITNESSFORAPARTICULARPURPOSEORNONINFRINGEMENT.
*NEITHERDOESMEDIATEKPROVIDEANYWARRANTYWHATSOEVERWITHRESPECTTOTHE
*SOFTWAREOFANYTHIRDPARTYWHICHMAYBEUSEDBY,INCORPORATEDIN,OR
*SUPPLIEDWITHTHEMEDIATEKSOFTWARE,ANDBUYERAGREESTOLOOKONLYTOSUCH
*THIRDPARTYFORANYWARRANTYCLAIMRELATINGTHERETO.MEDIATEKSHALLALSO
*NOTBERESPONSIBLEFORANYMEDIATEKSOFTWARERELEASESMADETOBUYER'S
*SPECIFICATIONORTOCONFORMTOAPARTICULARSTANDARDOROPENFORUM.
*
*BUYER'SSOLEANDEXCLUSIVEREMEDYANDMEDIATEK'SENTIREANDCUMULATIVE
*LIABILITYWITHRESPECTTOTHEMEDIATEKSOFTWARERELEASEDHEREUNDERWILLBE,
*ATMEDIATEK'SOPTION,TOREVISEORREPLACETHEMEDIATEKSOFTWAREATISSUE,
*ORREFUNDANYSOFTWARELICENSEFEESORSERVICECHARGEPAIDBYBUYERTO
*MEDIATEKFORSUCHMEDIATEKSOFTWAREATISSUE.
*
*THETRANSACTIONCONTEMPLATEDHEREUNDERSHALLBECONSTRUEDINACCORDANCE
*WITHTHELAWSOFTHESTATEOFCALIFORNIA,USA,EXCLUDINGITSCONFLICTOF
*LAWSPRINCIPLES.ANYDISPUTES,CONTROVERSIESORCLAIMSARISINGTHEREOFAND
*RELATEDTHERETOSHALLBESETTLEDBYARBITRATIONINSANFRANCISCO,CA,UNDER
*THERULESOFTHEINTERNATIONALCHAMBEROFCOMMERCE(ICC).
*
*****************************************************************************/
#ifdefBUILD_LK
#else
#include
#endif
#include"lcm_drv.h"
#ifdefBUILD_LK
#include
#else
#include
#endif
//---------------------------------------------------------------------------
//LocalConstants
//---------------------------------------------------------------------------
#defineFRAME_WIDTH(240)
#defineFRAME_HEIGHT(320)
#defineLCM_ID(0x7789)
//---------------------------------------------------------------------------
//LocalVariables
//---------------------------------------------------------------------------
staticLCM_UTIL_FUNCSlcm_util={0};
#defineSET_RESET_PIN(v)(lcm_util.set_reset_pin((v)))
#defineUDELAY(n)(lcm_util.udelay(n))
#defineMDELAY(n)(lcm_util.mdelay(n))
//---------------------------------------------------------------------------
//LocalFunctions
//---------------------------------------------------------------------------
static__inlinevoidsend_ctrl_cmd(unsignedshortcmd)
{
lcm_util.send_cmd(cmd);
}
static__inlinevoidsend_data_cmd(unsignedshortdata)
{
lcm_util.send_data(data);
}
static__inlineunsignedshortread_data_cmd(void)
{
return(unsignedshort)(lcm_util.read_data());
}
static__inlinevoidset_lcm_register(unsignedshortregIndex,
unsignedshortregData)
{
send_ctrl_cmd(regIndex);
send_data_cmd(regData);
}
staticvoidinit_lcm_registers(void)
{
#if0
inti,j;
//---------------------------------------------------------------------------------------------------//
send_ctrl_cmd(0x11);
MDELAY(120);//Delay120ms
//--------------------------------------DisplaySetting------------------------------------------//
send_ctrl_cmd(0x36);
send_data_cmd(0x00);
send_ctrl_cmd(0x3a);
send_data_cmd(0x05);
//--------------------------------ST7789VFrameratesetting----------------------------------//
send_ctrl_cmd(0xb2);
send_data_cmd(0x0c);
send_data_cmd(0x0c);
send_data_cmd(0x00);
send_data_cmd(0x33);
send_data_cmd(0x33);
send_ctrl_cmd(0xb7);
send_data_cmd(0x35);
//---------------------------------ST7789VPowersetting--------------------------------------//
send_ctrl_cmd(0xbb);
send_data_cmd(0x3a);
send_ctrl_cmd(0xc0);
send_data_cmd(0x2c);
send_ctrl_cmd(0xc2);
send_data_cmd(0x01);
send_ctrl_cmd(0xc3);
send_data_cmd(0x08);
send_ctrl_cmd(0xc4);
send_data_cmd(0x20);
send_ctrl_cmd(0xc6);
send_data_cmd(0x0f);
send_ctrl_cmd(0xd0);
send_data_cmd(0xa4);
send_data_cmd(0xa1);
//--------------------------------ST7789Vgammasetting---------------------------------------//
send_ctrl_cmd(0xe0);
send_data_cmd(0xd0);
send_data_cmd(0x00);
send_data_cmd(0x05);
send_data_cmd(0x0e);
send_data_cmd(0x15);
send_data_cmd(0x0d);
send_data_cmd(0x37);
send_data_cmd(0x43);
send_data_cmd(0x47);
send_data_cmd(0x09);
send_data_cmd(0x15);
send_data_cmd(0x12);
send_data_cmd(0x16);
send_data_cmd(0x19);
send_ctrl_cmd(0xe1);
send_data_cmd(0xd0);
send_data_cmd(0x00);
send_data_cmd(0x05);
send_data_cmd(0x0d);
send_data_cmd(0x0c);
send_data_cmd(0x06);
send_data_cmd(0x2d);
send_data_cmd(0x44);
send_data_cmd(0x40);
send_data_cmd(0x0e);
send_data_cmd(0x1c);
send_data_cmd(0x18);
send_data_cmd(0x16);
send_data_cmd(0x19);
send_ctrl_cmd(0x2A);
send_data_cmd((0>>8)&0xff);
send_data_cmd(0&0xff);
send_data_cmd((239>>8)&0xff);
send_data_cmd(239&0xff);
send_ctrl_cmd(0x2B);
send_data_cmd((0>>8)&&0xff);
send_data_cmd(0&0xff);
send_data_cmd((319>>8)&&0xff);
send_data_cmd(319&0xff);
send_ctrl_cmd(0x2C);
for(i=0;i<240;i++)
for(j=0;j<640;j++)
send_data_cmd(0x00);
send_ctrl_cmd(0x29);
#else
#ifdefBUILD_LK
#ifdefGPIO_LCDBL_EN_PIN
mt_set_gpio_mode(GPIO_LCDBL_EN_PIN,0);
mt_set_gpio_dir(GPIO_LCDBL_EN_PIN,1);
mt_set_gpio_out(GPIO_LCDBL_EN_PIN,0);
#endif
#endif
//------displaycontrolsetting------------//
send_ctrl_cmd(0xfe);
send_ctrl_cmd(0xef);
send_ctrl_cmd(0x36);
send_data_cmd(0x48);
send_ctrl_cmd(0x3a);
send_data_cmd(0x05);
//------enddisplaycontrolsetting----//
//------PowerControlRegistersInitial----//
send_ctrl_cmd(0xa4);
send_data_cmd(0x44);
send_data_cmd(0x44);
send_ctrl_cmd(0xa5);
send_data_cmd(0x42);
send_data_cmd(0x42);
send_ctrl_cmd(0xaa);
send_data_cmd(0x88);
send_data_cmd(0x88);
send_ctrl_cmd(0xe8);
send_data_cmd(0x11);
send_data_cmd(0x0b);
send_ctrl_cmd(0xe3);
send_data_cmd(0x01);
send_data_cmd(0x10);
send_ctrl_cmd(0xff);
send_data_cmd(0x61);
send_ctrl_cmd(0xAC);
send_data_cmd(0x00);
send_ctrl_cmd(0xAd);//ldoenable
send_data_cmd(0x33);
send_ctrl_cmd(0xae);
send_data_cmd(0x2b);
send_ctrl_cmd(0xAf);//DIG_VREFAD_VRDD[2]
send_data_cmd(0x55);
send_ctrl_cmd(0xa6);
send_data_cmd(0x2a);
send_data_cmd(0x2a);
send_ctrl_cmd(0xa7);
send_data_cmd(0x2b);
send_data_cmd(0x2b);
send_ctrl_cmd(0xa8);
send_data_cmd(0x18);
send_data_cmd(0x18);
send_ctrl_cmd(0xa9);
send_data_cmd(0x2a);
send_data_cmd(0x2a);
//-----displaywindow240X320---------//
send_ctrl_cmd(0x2a);
send_data_cmd(0x00);
send_data_cmd(0x00);
send_data_cmd(0x00);
send_data_cmd(0xef);
send_ctrl_cmd(0x2b);
send_data_cmd(0x00);
send_data_cmd(0x00);
send_data_cmd(0x01);
send_data_cmd(0x3f);
send_ctrl_cmd(0x2c);
send_ctrl_cmd(0xB6);
send_data_cmd(0x00);
send_data_cmd(0xe0);
//--------enddisplaywindow--------------//
//------------gammasetting------------------//
send_ctrl_cmd(0xf0);
send_data_cmd(0x2);
send_data_cmd(0x0);
send_data_cmd(0x0);
send_dat