- Visual C++源码
- Visual Basic源码
- C++ Builder源码
- Java源码
- Delphi源码
- C/C++源码
- PHP源码
- Perl源码
- Python源码
- Asm源码
- Pascal源码
- Borland C++源码
- Others源码
- SQL源码
- VBScript源码
- JavaScript源码
- ASP/ASPX源码
- C#源码
- Flash/ActionScript源码
- matlab源码
- PowerBuilder源码
- LabView源码
- Flex源码
- MathCAD源码
- VBA源码
- IDL源码
- Lisp/Scheme源码
- VHDL源码
- Objective-C源码
- Fortran源码
- tcl/tk源码
- QT源码
OLED.c
资源名称:SDK_M5661.rar [点击查看]
上传用户:hjhsjcl
上传日期:2020-09-25
资源大小:11378k
文件大小:62k
源码类别:
压缩解压
开发平台:
C++ Builder
- #define _OLED_H_
- #include "TypeDef.h"
- #include "Const.h"
- #include "Reg5661.h"
- #include "Common.h"
- #include "NandFlash.h"
- #include "OLED.h"
- #include "IconDefine.h"
- #include "Playback.h"
- #include "Idma.h"
- #include "OledString.h"
- #include "UiCommon.h"
- #include "UiSysStr.h"
- #include "IconDefine.h"
- #include "Video.h"
- #include "UiVideo.h"
- #if(USE_TITLE_NUM_DEBUG) // Walace091012
- // 5*8 number font
- #define CB_NUMBER_PAGE 1
- #define CB_NUMBER_COL 5
- #define CB_NUMBER_GAP 1
- CBYTE cbNumberChar[]={
- 0x7E,0x81,0x81,0x81,0x7E,
- 0x04,0x02,0xFF,0x00,0x00,
- 0x82,0xC1,0xA1,0x91,0x8E,
- 0x42,0x81,0x89,0x89,0x76,
- 0x30,0x2C,0x22,0xFF,0x20,
- 0x4C,0x8B,0x89,0x89,0x71,
- 0x7E,0x89,0x89,0x89,0x72,
- 0x01,0xE1,0x19,0x05,0x03,
- 0x76,0x89,0x89,0x89,0x76,
- 0x4E,0x91,0x91,0x91,0x7E
- };
- /*
- //6x16 font
- CBYTE cbNumberChar[]={0x0,0xE0,0x10,0x10,0x10,0xE0,
- 0x0,0x7,0x8,0x8,0x8,0x7,
- 0x0,0x40,0x20,0xF0,0x0,0x0,
- 0x0,0x0,0x0,0xF,0x0,0x0,
- 0x0,0x20,0x10,0x10,0x10,0xE0,
- 0x0,0x8,0xC,0xA,0x9,0x8,
- 0x0,0x20,0x10,0x90,0x90,0x60,
- 0x0,0x4,0x8,0x8,0x8,0x7,
- 0x0,0x0,0xC0,0x20,0xF0,0x0,
- 0x0,0x3,0x2,0x2,0xF,0x2,
- 0x0,0xC0,0xB0,0x90,0x90,0x10,
- 0x0,0x4,0x8,0x8,0x8,0x7,
- 0x0,0xE0,0x90,0x90,0x90,0x20,
- 0x0,0x7,0x8,0x8,0x8,0x7,
- 0x0,0x10,0x10,0x90,0x50,0x30,
- 0x0,0x0,0xE,0x1,0x0,0x0,
- 0x0,0x60,0x90,0x90,0x90,0x60,
- 0x0,0x7,0x8,0x8,0x8,0x7,
- 0x0,0xE0,0x10,0x10,0x10,0xE0,
- 0x0,0x4,0x9,0x9,0x9,0x7};
- */
- #endif
- API void OledCtrlEn(void)
- {
- #if(OLED_USE_SM_INTERFEACE) //050725
- ClkSmEn();
- obGPIOCDIR |= 0x10;
- obGPIOCDAT &= 0xef; //Lcd CSJ=0
- OLED_SET_CMD();
- #else
- ClkLcdEn();
- #ifdef USE_LCD_GPIO
- gxbKeepModeSel1=obMODSEL1;
- obMODSEL1=0;
- NandGpioCtrl(NAND_CS_OFF); //all off 051111
- // obGPIOHDAT |= 0x08; //Nand CSJ1=1
- obGPIOCDAT &= 0xef; //Lcd CSJ=0
- #else
- obMODSEL2 |= LCD_PAR_EN;
- #endif
- #endif
- }
- API void OledCtrlDis(void)
- {
- #if(OLED_USE_SM_INTERFEACE)
- obGPIOCDAT |= 0x10; //Lcd CSJ=1
- obGPIOCDIR |= 0x10;
- ClkSmDis();
- #else
- #ifdef USE_LCD_GPIO
- obMODSEL1=gxbKeepModeSel1;
- obGPIOCDAT |= 0x10; //Lcd CSJ=1
- NandGpioCtrl(gbChip); // 051111
- // obGPIOHDAT &= 0xF7; //Nand CSJ1=0
- #else
- obMODSEL2 &= LCD_PAR_DIS;
- #endif
- ClkLcdDis();
- #endif
- }
- /* Replace by commondelay
- void OledDelay(WORD wDelayTime) large
- {
- WORD wIndex;
- for(wIndex=0;wIndex<wDelayTime;wIndex++)
- { ; }
- }
- */
- //#if(_PM_DIR_DEL_|_PM_VD_PLAY_|_PM_HST_|_PM_SYS_|_PM_FM_|_PM_PLAY_MAIN_|_PM_MENU_|_PM_SAVE_|_PM_INIT_CHK_|SETTING_FOR_ICE_START|USE_TITLE_NUM_DEBUG)
- #if 0
- void OledWaitForReady(void)
- {
- #if(LCD_TYPE==TFT_ORISE)
- ;
- #else
- #if(OLED_USE_SM_INTERFEACE) //???
- OLED_SET_STS(); //Read, Command, CSJ=0
- while(obSMDATALO&0x80){;}
- OLED_SET_CMD() ; // Command, CSJ=0
- #else
- do
- {
- obPARLCD = 0x2C; // DOE disable, command, CSJ
- obPARLCD = 0x24; // Read
- bReadData=obPARLCD_RDATA;
- obPARLCD = 0x2C; // 0x2D->0x2C
- obPARLCD = 0x24; // Read
- bReadData=obPARLCD_RDATA;
- obPARLCD = 0x2C; // 0x2D->0x2C
- }while(bReadData&0x80) ;
- #endif
- #endif
- }
- #endif
- //Walace060204#Bright start
- /*
- #if(OLED_COLOR_FIELD_TYPE==OLED_FIELD_BGR565)
- #define OLED_R_FACTOR 63
- #define OLED_G_FACTOR 63
- #define OLED_B_FACTOR 63
- #define OLED_COLOR_EXP 6
- #else
- #define OLED_R_FACTOR 16
- #define OLED_G_FACTOR 32
- #define OLED_B_FACTOR 63
- #define OLED_COLOR_EXP 6
- #endif
- #if(!(_PM_PLAY_DEL_|_PM_SLS_))
- void OledSetContrast(BYTE bContrast)
- {
- OledCtrlEn();
- OLED_WRITE(OLED_CMD_SET_CONTRAST_A) ;
- OLED_WRITE(((WORD)bContrast*OLED_R_FACTOR)>>OLED_COLOR_EXP) ;
- OLED_WRITE(OLED_CMD_SET_CONTRAST_B) ;
- OLED_WRITE(((WORD)bContrast*OLED_G_FACTOR)>>OLED_COLOR_EXP) ;
- OLED_WRITE(OLED_CMD_SET_CONTRAST_C) ;
- OLED_WRITE(((WORD)bContrast*OLED_B_FACTOR)>>OLED_COLOR_EXP) ;
- OledCtrlDis();
- }
- #endif
- */
- //#if(!(_PM_DIR_DEL_|_PM_PLAY_DEL_|_PM_SLS_|_PM_INIT_CHK_|_PM_USB_|_PM_PLAY_PRC_))
- #if(!(_PM_DIR_DEL_|_PM_PLAY_DEL_|_PM_SLS_|_PM_INIT_CHK_|_PM_USB_|_PM_PLAY_PRC_|_PM_FM_|_PM_PLAY_MAIN_)) // WHH 070128
- void OledSetBrightness(BYTE bBright)
- {
- #if(LCD_TYPE==TFT_ORISE||LCD_TYPE==TFT_TOPPOLY||LCD_TYPE==TFT_SOLOMON) //Jim#TftSolomn // Jeff070125#2
- //1 Need modification
- OledCtrlEn();
- /*OLED_SET_CMD();//==================
- OLED_WRITE(0xc0) ;
- OLED_SET_DAT();
- OLED_WRITE(bBright*3) ; //start oscillation exectued
- OLED_WRITE(bBright/2) ; //start oscillation exectued
- */
- OLED_SET_CMD();
- OLED_WRITE(0xc6) ;
- OLED_SET_DAT();
- OLED_WRITE(07-bBright*5+10) ;
- OLED_SET_CMD();
- OLED_WRITE(0xc5) ;
- OLED_SET_DAT();
- OLED_WRITE(0xc0-bBright*5+10) ;
- OledCtrlDis();
- #else
- OledCtrlEn();
- OLED_WRITE(OLED_CMD_SET_MASTER_CURRENT) ;
- OLED_WRITE(bBright&0x0F);
- OledCtrlDis();
- #endif
- }
- #endif
- //Walace060204#Bright end
- //Walace051130#2 start
- #if(UI_COLOR_TUNE)
- void OledSetRGBContrast(PBYTE pbContrastFactor) large
- {
- OledCtrlEn();
- #if(LCD_TYPE==TFT_ORISE||LCD_TYPE==TFT_TOPPOLY||LCD_TYPE==TFT_SOLOMON) //Jim#TftSolomn // Jeff070125#2
- //1 Need modification
- *pbContrastFactor=*pbContrastFactor;
- #else
- OLED_WRITE(OLED_CMD_SET_CONTRAST_A) ;
- OLED_WRITE(pbContrastFactor[0]) ;
- OLED_WRITE(OLED_CMD_SET_CONTRAST_B) ;
- OLED_WRITE(pbContrastFactor[1]) ;
- OLED_WRITE(OLED_CMD_SET_CONTRAST_C) ;
- OLED_WRITE(pbContrastFactor[2]) ;
- #endif
- OledCtrlDis();
- }
- #endif
- #if(LCD_TYPE==TFT_ORISE||LCD_TYPE==TFT_TOPPOLY||LCD_TYPE==TFT_SOLOMON) // Jeff070125#2
- //Walace061228#CodeSize
- #if(_PM_VD_PLAY_|_PM_SLS_) // Jeff070125#2 // WHH 070128 mark
- //#if(_PM_SLS_) // WHH 070128 mark
- void TftSetWindowRot(BYTE bColStart, BYTE bRowStart, BYTE bWidth, BYTE bHeight)
- {
- DISP_CMD_OUT(0x7);
- DISP_DATA_OUT(bColStart) ;
- DISP_CMD_OUT(0x8);
- DISP_DATA_OUT(bRowStart);
- DISP_CMD_OUT(0x10);
- DISP_DATA_OUT(bColStart);
- DISP_CMD_OUT(0x11);
- DISP_DATA_OUT(bRowStart+1-bHeight);
- DISP_CMD_OUT(0x12);
- DISP_DATA_OUT(bColStart+bWidth-1);
- DISP_CMD_OUT(0x13);
- DISP_DATA_OUT(bRowStart);
- }
- #endif
- void TftSetWindow(BYTE bColStart,BYTE bRowStart,BYTE bWidth,BYTE bHeight)
- {
- #if(LCD_TYPE==TFT_ORISE)
- //Debug
- //4Column set
- LCD_SET_CMD();
- LCD_WRITE(0x2A);
- LCD_SET_DAT();
- LCD_WRITE(0x00);
- LCD_WRITE(bColStart);
- LCD_WRITE(0x00);
- LCD_WRITE(bColStart+bWidth-1);
- //4 Row set
- LCD_SET_CMD();
- LCD_WRITE(0x2B);
- LCD_SET_DAT();
- LCD_WRITE(0x00);
- LCD_WRITE(bRowStart);
- LCD_WRITE(0x00);
- LCD_WRITE(bRowStart+bHeight-1);
- #elif(LCD_TYPE==TFT_TOPPOLY) // Jeff070125#2
- // WHH_301_061219 #1 (start)
- DISP_CMD_OUT(0x7);
- DISP_DATA_OUT(bColStart) ;
- DISP_CMD_OUT(0x8);
- DISP_DATA_OUT(bRowStart);
- DISP_CMD_OUT(0x10);
- DISP_DATA_OUT(bColStart) ;
- DISP_CMD_OUT(0x11);
- DISP_DATA_OUT(bRowStart);
- DISP_CMD_OUT(0x12);
- DISP_DATA_OUT(bColStart+bWidth-1);
- DISP_CMD_OUT(0x13);
- DISP_DATA_OUT(bRowStart+bHeight-1);
- /*DISP_CMD_OUT(0x14);
- DISP_DATA_OUT(bColStart) ;
- DISP_CMD_OUT(0x15);
- DISP_DATA_OUT(bRowStart);
- DISP_CMD_OUT(0x16);
- DISP_DATA_OUT(bColStart+bWidth-1);
- DISP_CMD_OUT(0x17);
- DISP_DATA_OUT(bRowStart+bHeight-1);*/
- // WHH_301_061219 #1 (end)
- #elif(LCD_TYPE==TFT_SOLOMON) //Jim#TftSolomn
- TFT_WRITE_CMD(0x4E);
- LCD_SET_DAT();
- LCD_WRITE(0x00);
- LCD_WRITE(bColStart);
- TFT_WRITE_CMD(0x4F);
- TFT_WRITE_DAT16(bRowStart);
- //4Column set
- TFT_WRITE_CMD(0x44);
- TFT_WRITE_DAT(bColStart+bWidth-1);
- TFT_WRITE_DAT(bColStart);
- //4Row set
- TFT_WRITE_CMD(0x45);
- TFT_WRITE_DAT16(bRowStart);
- TFT_WRITE_CMD(0x46);
- TFT_WRITE_DAT16(bRowStart+bHeight-1);
- #endif
- }
- #if 0
- void TftSetScrollArea(BYTE bScrollStartRow,BYTE bScrollEndRow)
- {
- TFT_WRITE_CMD(0x33);
- LCD_SET_DAT();
- LCD_WRITE(0);
- LCD_WRITE(bScrollStartRow);
- LCD_WRITE(0);
- LCD_WRITE(bScrollEndRow-bScrollStartRow);
- LCD_WRITE(0);
- LCD_WRITE(220-bScrollEndRow);
- }
- void TftSetScrollLine(BYTE bLine)
- {
- TFT_WRITE_CMD(0x37);
- LCD_SET_DAT();
- LCD_WRITE(0);
- LCD_WRITE(bLine);
- }
- #endif
- #endif
- /*
- #if(_PM_SYS_) //Walace070112#1
- #if(LCD_TYPE==TFT_ORISE) //Walace070110#1
- #if(LCD_NUM==ORISE_SPFD54126B)
- void TftColorTableSet(PXBYTE pColorRTable,PXBYTE pColorGTable,PXBYTE pColorBTable)
- {
- BYTE bIndex;
- TFT_WRITE_CMD(0x2D);//17h
- LCD_SET_DAT();
- for(bIndex=0;bIndex<32;bIndex++)
- LCD_WRITE(*(pColorRTable+bIndex));
- for(bIndex=0;bIndex<64;bIndex++)
- LCD_WRITE(*(pColorGTable+bIndex));
- for(bIndex=0;bIndex<32;bIndex++)
- LCD_WRITE(*(pColorBTable+bIndex));
- }
- #endif
- #endif
- #endif
- */
- //remove !_PM_MTP_ by tne 2006/12/01 #1
- #if(_PM_INIT_|_PM_USB_|SETTING_FOR_ICE_START)
- /*
- #if(LCD_TYPE==TFT_ORISE) //Walace070110#1
- #if(LCD_NUM==ORISE_SPFD54126B)
- #define R_OFFSET 0x00
- #define G_OFFSET 0x05
- #define B_OFFSET 0x06
- void TftColorLUTSet(void)
- {
- BYTE bIndex,bValue;
- TFT_WRITE_CMD(0x2D);//17h
- LCD_SET_DAT();
- for(bIndex=0;bIndex<(1<<5);bIndex++)
- {
- if(bIndex<16)
- bValue=(bIndex<<1);
- else
- bValue=(bIndex<<1)+1;
- if(bValue>R_OFFSET)
- bValue-=R_OFFSET;
- else
- bValue=0;
- TFT_WRITE_DAT(bValue);
- }
- for(bIndex=0;bIndex<(1<<6);bIndex++)
- {
- bValue=bIndex;
- if(bIndex>G_OFFSET)
- bValue-=G_OFFSET;
- else
- bValue=0;
- TFT_WRITE_DAT(bValue);
- }
- for(bIndex=0;bIndex<(1<<5);bIndex++)
- {
- if(bIndex<16)
- bValue=(bIndex<<1);
- else
- bValue=(bIndex<<1)+1;
- if(bValue>B_OFFSET)
- bValue-=B_OFFSET;
- else
- bValue=0;
- TFT_WRITE_DAT(bValue);
- }
- }
- #endif
- #endif
- */
- void OledInit(void)
- {
- LCD_POWER_ON(); //Walace051125#2
- LCD_RESET_EN();
- LCD_RESET_DIS(); //Walace051125#2
- OledCtrlEn();
- #if(OLED_USE_SM_INTERFEACE)
- //050802
- obSYSSOFTRSTCTRL |= SM_RST_DIS;
- obMODSEL1 |= (MOD_SM_8BIT);
- obGPIOCDIR |=0xF0; //050802: force LCD ctrl to output RDJ,WRJ,D/CJ,CSJ
- #endif
- #if(LCD_TYPE==TFT_ORISE)
- #if(LCD_NUM==ORISE_SPFD54126B) //Walace070110#1
- TFT_WRITE_CMD(0x11);//00h
- TFT_WRITE_CMD(0xC0);//power control
- TFT_WRITE_DAT(0x03);//05
- TFT_WRITE_CMD(0xC5);//VCOMH control
- TFT_WRITE_DAT(0xa4);//a4
- TFT_WRITE_CMD(0xC6);//11h
- TFT_WRITE_DAT(0x0b);//09
- TFT_WRITE_CMD(0x3A);//06h
- TFT_WRITE_DAT(0x05);//06;8bit
- TFT_WRITE_CMD(0xf0);//Orise mode
- TFT_WRITE_DAT(0x5a);//
- TFT_WRITE_CMD(0xf2);//
- TFT_WRITE_DAT(0x01);//
- TFT_WRITE_CMD(0xE0);//0Eh gamma set
- TFT_WRITE_DAT(0x00);
- TFT_WRITE_DAT(0x01);
- TFT_WRITE_DAT(0x06);
- TFT_WRITE_DAT(0x2e);
- TFT_WRITE_DAT(0x2a);
- TFT_WRITE_DAT(0x0b);
- TFT_WRITE_DAT(0x1d);
- TFT_WRITE_DAT(0x01);
- TFT_WRITE_DAT(0x06);
- TFT_WRITE_DAT(0x05);
- TFT_WRITE_DAT(0x0f);
- TFT_WRITE_DAT(0x0f);
- TFT_WRITE_DAT(0x00);
- TFT_WRITE_DAT(0x04);
- TFT_WRITE_DAT(0x03);
- TFT_WRITE_DAT(0x05);
- TFT_WRITE_CMD(0xE1);
- TFT_WRITE_DAT(0x06);
- TFT_WRITE_DAT(0x22);
- TFT_WRITE_DAT(0x25);
- TFT_WRITE_DAT(0x0f);
- TFT_WRITE_DAT(0x0a);
- TFT_WRITE_DAT(0x04);
- TFT_WRITE_DAT(0x02);
- TFT_WRITE_DAT(0x1d);
- TFT_WRITE_DAT(0x05);
- TFT_WRITE_DAT(0x04);
- TFT_WRITE_DAT(0x04);
- TFT_WRITE_DAT(0x00);
- TFT_WRITE_DAT(0x0f);
- TFT_WRITE_DAT(0x0f);
- TFT_WRITE_DAT(0x05);
- TFT_WRITE_DAT(0x05);
- TftColorLUTSet(); //Walace070110#1
- TFT_WRITE_CMD(0x29);//17h
- #elif(LCD_NUM==ORISE_SPFD54126A)
- //4 Sleep out & booster up
- TFT_WRITE_CMD(0x11);
- CommonDelay(0xFFFF);
- //4Turn off the separate RGB gamma function
- TFT_WRITE_CMD(0xaa);
- //4 Interface pixel format
- SET_PIXEL_FORMAT_16BITS(); // MCU Interface --> 16 bits /pixel //RGB Interface -- invalid value
- TftSetWindow(0,OLED_MAX_COL,0,OLED_MAX_ROW);
- //4Gamma curve selection
- TFT_WRITE_CMD(0x26);
- TFT_WRITE_DAT(0x04);
- //4Dispaly inversion control
- TFT_WRITE_CMD(0xb4);
- TFT_WRITE_DAT(0x00); // NLA=0,NLB=0,NLC=0 //0: line inversion 1: frame inversion
- CommonDelay(0xFFFF);
- //4Frame rate control
- TFT_WRITE_CMD(0xB1);
- TFT_WRITE_DAT(0x02); // Amount of front porch
- TFT_WRITE_DAT(0x02); // Amount of back porch
- TFT_WRITE_DAT(0x00); // No. of clock in one line
- //4Power Control 2
- TFT_WRITE_CMD(0xC1);
- TFT_WRITE_DAT(0x05); // Set the [AVDD,VCL,VGH,VGL] = [4.75,-2.45,14.7,-7.35]
- //4VCOMH Control 1
- TFT_WRITE_CMD(0xC5);
- TFT_WRITE_DAT(0xa4); //nVm=1, VCOM=3.4
- //4VCOMH Control 2
- TFT_WRITE_CMD(0xC6);
- TFT_WRITE_DAT(0x09); // VCOMAC = 4.45
- //4Power Control 1
- TFT_WRITE_CMD(0xC0);
- TFT_WRITE_DAT(0x03); //GVDD = 4.65
- TFT_WRITE_DAT(0x06); //VC1 = 2.80
- //???
- TFT_WRITE_CMD(0xfe);
- TFT_WRITE_DAT(0x00); //05
- TFT_WRITE_DAT(0x04); //05
- CommonDelay(1000);
- //4Read display status //Write defaut value?? ask LCM engineer
- TFT_WRITE_CMD(0x09);
- TFT_WRITE_DAT(0x00);
- TFT_WRITE_DAT(0x61);
- TFT_WRITE_DAT(0x00);
- TFT_WRITE_DAT(0x00);
- //4Read display image mode
- TFT_WRITE_CMD(0x0D);
- TFT_WRITE_DAT(0x00); // vertical scroll off, inversion off, gamma curve selection = GC0
- //4Gamma curve select
- TFT_WRITE_CMD(0x26);
- TFT_WRITE_DAT(0x01); // select GC0 (Gamma curve selection 0)
- //4 Gamma " +" polarity correction characteristics setting
- TFT_WRITE_CMD(0xE0);
- TFT_WRITE_DAT(0x90);
- TFT_WRITE_DAT(0x7D);
- TFT_WRITE_DAT(0x33);
- TFT_WRITE_DAT(0x74);
- TFT_WRITE_DAT(0x57);
- //4Gamma "-" polarity correction characteristics setting
- TFT_WRITE_CMD(0xE1);
- TFT_WRITE_DAT(0x90);
- TFT_WRITE_DAT(0x7D);
- TFT_WRITE_DAT(0x33);
- TFT_WRITE_DAT(0x74);
- TFT_WRITE_DAT(0x57);
- //4Lcd Rot 90 degree and left alignment
- #if(TFT_ROT90_AND_LEFT_ALIGNMENT)
- LCD_ROT90_DISPLAY_EN();
- #endif
- #if(TFT_FRAME_RATE_UP)
- TFT_WRITE_CMD(0xB1);
- TFT_WRITE_DAT(15);
- TFT_WRITE_DAT(15);
- TFT_WRITE_DAT(15);
- #endif
- //4LCD Display On
- OledDisplayOn(TRUE);
- #elif(LCD_NUM==ORISE_SPFD54124A)
- // Jeff_061130 TFT initial code start
- obGPIOCDIR |=0x08;
- obGPIOCDAT &=0xf7;
- CommonDelay(5000);
- obGPIOCDAT |=0x08;
- OLED_SET_CMD();
- OLED_WRITE(0x11);
- OLED_WRITE(0x20);
- OLED_WRITE(0x38);
- OLED_WRITE(0x13);
- OLED_WRITE(0x3A);
- OLED_SET_DAT();
- OLED_WRITE(0x05);
- OLED_SET_CMD();
- OLED_WRITE(0xC0);
- OLED_SET_DAT();
- OLED_WRITE(0x03);
- //4VCOMH Control 1
- OLED_SET_CMD();
- OLED_WRITE(0xC5);
- OLED_SET_DAT();
- OLED_WRITE(0xc0);
- //OLED_WRITE(0xd9);
- //4VCOMH Control 2
- OLED_SET_CMD();
- OLED_WRITE(0xC6);
- OLED_SET_DAT();
- OLED_WRITE(0x07);
- //OLED_WRITE(0x1f);//(0x1F);
- CommonDelay(5000);
- //OLED_SET_CMD();
- //OLED_WRITE(0xFE);
- //OLED_SET_DAT();
- //OLED_WRITE(0x00);
- //OLED_WRITE(0x04);
- OLED_SET_CMD();
- OLED_WRITE(0xe0);
- OLED_SET_DAT();
- OLED_WRITE(0x10);
- OLED_WRITE(0x11);
- OLED_WRITE(0x11);
- OLED_WRITE(0x11);
- OLED_WRITE(0x11);
- OLED_WRITE(0x11);
- OLED_WRITE(0x01);
- //OLED_SET_CMD();
- //OLED_WRITE(0x26);
- //OLED_SET_DAT();
- //OLED_WRITE(0x04);
- OLED_SET_CMD();
- OLED_WRITE(0x2A);
- OLED_SET_DAT();
- OLED_WRITE(0x00);
- OLED_WRITE(0x00);
- OLED_WRITE(0x00);
- OLED_WRITE(0x7F);
- OLED_SET_CMD();
- OLED_WRITE(0x2B);
- OLED_SET_DAT();
- OLED_WRITE(0x00);
- OLED_WRITE(0x00);
- OLED_WRITE(0x00);
- OLED_WRITE(0x9F);
- //4Gamma curve selection
- OLED_SET_CMD();
- OLED_WRITE(0x36);
- OLED_SET_DAT();
- OLED_WRITE(0x00);
- OLED_SET_CMD();
- OLED_WRITE(0x29);
- // Jeff_061130 end
- #endif
- #elif(LCD_TYPE==TFT_TOPPOLY) // Jeff070125#2
- // WHH_301_061219 #1 (start)
- obGPIOCDIR |=0x08;
- obGPIOCDAT &=0xf7;
- CommonDelay(3000);
- obGPIOCDAT |=0x08;
- DISP_CMD_OUT(0X01);
- DISP_DATA_OUT(0X02);
- DISP_CMD_OUT(0X02);
- DISP_DATA_OUT(0X80);
- DISP_CMD_OUT(0X03);
- DISP_DATA_OUT(0X80);
- DISP_CMD_OUT(0X04);
- DISP_DATA_OUT(0X50);
- DISP_CMD_OUT(0X18);
- DISP_DATA_OUT(0X02);
- DISP_CMD_OUT(0X35);
- DISP_DATA_OUT(0X01);
- CommonDelay(50000);
- DISP_CMD_OUT(0X07);
- DISP_DATA_OUT(0X00);
- DISP_CMD_OUT(0X08);
- DISP_DATA_OUT(0X00);
- DISP_CMD_OUT(0X05);
- DISP_DATA_OUT(0X05);
- DISP_CMD_OUT(0X06);
- DISP_DATA_OUT(0X05);
- DISP_CMD_OUT(0X09);
- DISP_DATA_OUT(0X10);
- DISP_CMD_OUT(0X14);
- DISP_DATA_OUT(0X00);
- DISP_CMD_OUT(0X15);
- DISP_DATA_OUT(0X00);
- DISP_CMD_OUT(0X16);
- DISP_DATA_OUT(0X5f);
- DISP_CMD_OUT(0X17);
- DISP_DATA_OUT(0X3f);
- DISP_CMD_OUT(0X10);
- DISP_DATA_OUT(0X00);
- DISP_CMD_OUT(0X11);
- DISP_DATA_OUT(0X00);
- DISP_CMD_OUT(0X12);
- DISP_DATA_OUT(0XAF);
- DISP_CMD_OUT(0X13);
- DISP_DATA_OUT(0XDB);
- DISP_CMD_OUT(0X3F);
- DISP_DATA_OUT(0X08);
- DISP_CMD_OUT(0X5A);
- DISP_DATA_OUT(0X1C);
- DISP_CMD_OUT(0x14);
- DISP_DATA_OUT(0) ;
- DISP_CMD_OUT(0x15);
- DISP_DATA_OUT(0);
- DISP_CMD_OUT(0x16);
- DISP_DATA_OUT(0xAF);
- DISP_CMD_OUT(0x17);
- DISP_DATA_OUT(0xDB);
- DISP_CMD_OUT(0X02);
- DISP_DATA_OUT(0X80);
- // WHH_301_061219 #1 (end)
- #elif(LCD_TYPE==TFT_SOLOMON) //Jim#TftSolomn
- #if(LCD_NUM==SOLOMON_SSD1289)
- TFT_WRITE_CMD(0x00);//Oscillation Start
- TFT_WRITE_DAT16(0x0001);
- TFT_WRITE_CMD(0x10);//Sleep Mode
- TFT_WRITE_DAT16(0x0000);//0a00
- TFT_WRITE_CMD(0x07);//Display control
- TFT_WRITE_DAT16(0x0033);
- TFT_WRITE_CMD(0x11);//Entry mode
- TFT_WRITE_DAT16(0x6830);
- TFT_WRITE_CMD(0x01);//Driver output control
- TFT_WRITE_DAT16(0x2B3F);
- TFT_WRITE_CMD(0x02);//LCD driver AC control
- TFT_WRITE_DAT16(0x0600);//0600
- TFT_WRITE_CMD(0x03);//Power control(1)
- TFT_WRITE_DAT16(0x6A64);//VGH
- TFT_WRITE_CMD(0x0B);//Frame cycle control
- TFT_WRITE_DAT16(0x5308);//65HZ
- // TFT_WRITE_DAT(0x0600);//new code
- TFT_WRITE_CMD(0x0C);//Power control(2)
- TFT_WRITE_DAT16(0x0007);
- TFT_WRITE_CMD(0x0D);//Power control(3)
- TFT_WRITE_DAT16(0x000A);//VLCD63(0X000A)
- TFT_WRITE_CMD(0x0F);//Gate scan start
- TFT_WRITE_DAT16(0x0000);
- TFT_WRITE_CMD(0x1E);//Power control(5) VCOMH
- TFT_WRITE_DAT16(0x00B7);//(B6)
- TFT_WRITE_CMD(0x0E);//Power control(4) VCOML
- TFT_WRITE_DAT16(0x2C00);
- TFT_WRITE_CMD(0x25);//Frame Frequency
- TFT_WRITE_DAT16(0xE000);
- TFT_WRITE_CMD(0x44);//Horizontal RAM address position
- TFT_WRITE_DAT16(0xEF00);
- TFT_WRITE_CMD(0x45);//Vertical RAM start address position
- TFT_WRITE_DAT16(0x0000);
- TFT_WRITE_CMD(0x46);//Vertical RAM end address position
- TFT_WRITE_DAT16(0x013F);
- //TFT_WRITE_CMD(0x0021);
- //TFT_WRITE_DAT16(0x0000);
- TFT_WRITE_CMD(0x30);//r cptrol
- TFT_WRITE_DAT16(0x0000);
- TFT_WRITE_CMD(0x31);//r cptrol
- TFT_WRITE_DAT16(0x0405);
- TFT_WRITE_CMD(0x32);//r cptrol
- TFT_WRITE_DAT16(0x0000);
- TFT_WRITE_CMD(0x33);//r cptrol
- TFT_WRITE_DAT16(0x0700);
- TFT_WRITE_CMD(0x34);//r cptrol
- TFT_WRITE_DAT16(0x0200);
- TFT_WRITE_CMD(0x35);//r cptrol
- TFT_WRITE_DAT16(0x0303);
- TFT_WRITE_CMD(0x36);//r cptrol
- TFT_WRITE_DAT16(0x0704);
- TFT_WRITE_CMD(0x37);//r cptrol
- TFT_WRITE_DAT16(0x0200);
- TFT_WRITE_CMD(0x3A);//r cptrol
- TFT_WRITE_DAT16(0x0700);
- TFT_WRITE_CMD(0x3B);//r cptrol
- TFT_WRITE_DAT16(0x0003);
- TFT_WRITE_CMD(0x22);//RAM data write/read
- #endif
- #else
- OLED_SET_CMD();
- OLED_WRITE(OLED_CMD_SET_DISP_OFF) ;
- CommonDelay(3000);
- //OledWriteCommand(OLED_CMD_SET_MUX_RATIO) ;
- //OledWriteCommand(0x3F) ; //default value
- //OledWaitForReady() ;
- //OledWriteCommand(OLED_CMD_SET_START_LINE) ;
- //OledWriteCommand(0x00) ; //default value
- //OledWaitForReady() ;
- //OledWriteCommand(OLED_CMD_SET_DISP_OFFSET) ;
- //OledWriteCommand(0x00) ; //default value
- OLED_WRITE(OLED_CMD_SET_REMAP_FORMAT) ;
- OLED_WRITE(OLED_5661_MAP_DRAWDIR_COL) ;
- OLED_WRITE(OLED_CMD_SET_MASTER_CURRENT) ;
- //Walace060204#Bright start
- OLED_WRITE(gxbLcdContrast) ; //Walace060320#2
- /*
- #if(OLED_COLOR_FIELD_TYPE==OLED_FIELD_BGR565)
- OLED_WRITE(0x05) ; //bright 0x00~0x0F
- #else //OLED_FIELD_RGB565
- OLED_WRITE(0x09) ; //bright 0x00~0x0F
- #endif
- */
- OLED_WRITE(OLED_CMD_SET_VA) ;
- OLED_WRITE(0x00) ; // Voltage level = 0.43*Vref
- OLED_WRITE(OLED_CMD_SET_VB) ;
- OLED_WRITE(0x00) ; // Voltage level = 0.43*Vref
- OLED_WRITE(OLED_CMD_SET_VC) ;
- OLED_WRITE(0x00) ; // Voltage level = 0.43*Vref
- OLED_WRITE(OLED_CMD_SET_VCOMMH) ;
- OLED_WRITE(0x7F) ; // VCOMH = 1.0*Vref
- OLED_WRITE(OLED_CMD_SET_POWER_SAVE) ;
- OLED_WRITE(0x12) ; // 0x12 Power Save mode
- // 0x00 normal mode
- OLED_WRITE(OLED_CMD_SET_PHASE12) ;
- OLED_WRITE(0x24) ;
- OLED_WRITE(OLED_CMD_SET_LINEAR_GRAY_TABLE);
- //OledWriteCommand(OLED_CMD_SET_DISP_CLK_DIVIDER) ;
- //OledWriteCommand(0xD0) ; // default value
- OLED_WRITE(OLED_CMD_SET_MASTER_CONFIG) ;
- OLED_WRITE(MASTER_CONFIG|MASTER_CONFIG_INTER_VCOMH|MASTER_CONFIG_INTER_VP) ;
- OledCtrlDis();
- OLED_CLEAR_ALL();
- OledCtrlEn();
- //Walace060204#Bright start
- OLED_SET_CONTRAST_HI();
- //Walace060204#Bright end
- OLED_WRITE(OLED_CMD_SET_DISP_ON) ;
- CommonDelay(3000);
- OLED_DISP_MASK_INIT();
- #endif
- OledCtrlDis();
- }
- #endif //#if(!_PM_USB_)
- //#if(!(_PM_PLAY_DEL_|_PM_DIR_DEL_)) //Walace060908#1
- void OledDisplayOn(BOOL fPowerOn)
- {
- OledCtrlEn();
- #if(LCD_TYPE==TFT_ORISE)
- if(fPowerOn)
- OLED_WRITE(TFT_CMD_SET_DISP_ON);
- else
- OLED_WRITE(TFT_CMD_SET_DISP_OFF);
- #elif(LCD_TYPE==TFT_TOPPOLY) // Jeff070125#2
- if(fPowerOn) // WHH_301_061219 #1
- {DISP_CMD_OUT(0X02);
- DISP_DATA_OUT(0X80); }
- else // WHH_301_061219 #1
- {DISP_CMD_OUT(0X02);
- DISP_DATA_OUT(0X40); }
- #elif(LCD_TYPE==TFT_SOLOMON) //Jim#TftSolomn
- TFT_WRITE_CMD(0x07);
- if(fPowerOn)
- {TFT_WRITE_DAT16(0x0033);}
- else
- {TFT_WRITE_DAT16(0x0000);}
- #else
- if(fPowerOn)
- OLED_WRITE(OLED_CMD_SET_DISP_ON);
- else
- OLED_WRITE(OLED_CMD_SET_DISP_OFF);
- #endif
- //OledWaitForReady(); //tne 2005/11/22 #2
- OledCtrlDis();
- }
- //#endif
- #if(0) //tne 2007/01/08 #1
- void OledDisplayFade(BOOL fFadeIn,WORD wDelay)
- {
- BYTE bI ;
- // for(bI=0; bI<=MAX_CONTRAST; bI++)
- for(bI=0; bI<=MAX_BRIGHTNESS; bI++)//Walace060204#Bright
- {
- if(fFadeIn)
- OledSetBrightness(bI);
- else
- OledSetBrightness(MAX_BRIGHTNESS-bI);
- CommonDelay(wDelay);
- }
- }
- #endif
- //Walace061228#CodeSize
- #if(0)
- void OledDMAToLcd(WORD wIconIndex,BYTE bColStart, BYTE bRowStart, BYTE bWidth, BYTE bHeight)
- {
- WORD wIconSize;
- WORD wPixelIndex;
- WORD wByteIndex;
- WORD wBuff;
- #if(OLED_USE_MASK_DISPLAY)
- BYTE bKeepCLK;
- WORD wIndex;
- #endif
- OledCtrlEn();
- //wIconSize = (DWORD)bWidth*bHeight*2; // unit in byte
- wIconSize = (WORD)bWidth*(WORD)bHeight; // unit in pixel
- wPixelIndex=0;
- #if(OLED_USE_MASK_DISPLAY)
- if(!gfIconMaskEn)
- #endif
- {
- #if(LCD_TYPE==TFT_ORISE||LCD_TYPE==TFT_TOPPOLY||LCD_TYPE==TFT_SOLOMON) //Jim#TftSolomn // Jeff070125#2
- TftSetWindow(bColStart,bRowStart,bWidth,bHeight);
- #else
- OLED_WRITE(OLED_CMD_SET_COL_ADDR) ;
- OLED_WRITE(bColStart) ;
- OLED_WRITE(bColStart+bWidth-1) ;
- OLED_WRITE(OLED_CMD_SET_ROW_ADDR) ;
- OLED_WRITE(bRowStart) ;
- OLED_WRITE(bRowStart+bHeight-1) ;
- #endif
- }
- #if(LCD_TYPE==TFT_ORISE||LCD_TYPE==TFT_TOPPOLY||LCD_TYPE==TFT_SOLOMON) //Jim#TftSolomn // Jeff070125#2
- TFT_MEMORY_WRITE_START();
- #endif
- while(wIconSize)
- {
- OledCtrlDis();
- NandReadPhySec(gxwFontTable[FONT_SYS]+(wIconIndex>>SYSFONT_SECTOR_DIV), 1, SRAM_LYRICS_ADDR) ;
- OledCtrlEn();
- wByteIndex = ((wIconIndex&SYSFONT_OFFSET_MASK)<<SYSFONT_MIN_ALO_EXP);
- //wBuff = (SECTOR_SIZE -wByteIndex); // unit in byte
- wBuff = (SECTOR_SIZE -wByteIndex)>>1; // unit in pixel
- if(wIconSize<=wBuff)
- wBuff=wIconSize;
- #if(OLED_USE_MASK_DISPLAY)
- //2 Send pixel with mask process (Slower)
- if(gfIconMaskEn)
- {
- bKeepCLK=obCLKMCUDIVF; //Walace060131#3
- SetSysSpeed(0x03);
- //for(wIndex=0;wIndex<wBuff;wIndex+=2) // unit in byte
- for(wIndex=0;wIndex<wBuff;wIndex+=1) // unit in pixel
- {
- OledDrawPoint(bColStart+wPixelIndex%bWidth,bRowStart+wPixelIndex/bWidth,*((PXWORD)(SRAM_LYRICS_ADDR+wByteIndex+wIndex)));
- wPixelIndex++;
- }
- SetSysSpeed(bKeepCLK); //Walace060131#3
- }
- //2 Send pixel data with DMA (Faster)
- else
- #endif
- {
- #if 1
- OLED_SET_DAT();
- // OledDMASramToSM(wByteIndex+=0x0800,wBuff); // wBuff(unit in byte)
- OledDMASramToSM(wByteIndex+=0x0800,(wBuff<<1)); // wBuff (unit in pixel)
- OLED_SET_CMD();
- #else
- for(wDebug2=0;wDebug2<wBuff;wDebug2++)
- {
- //LCD_WRITE(*((PXBYTE)(wDebug2+wByteIndex+0xC800)));
- if((wDebug3)%2==0)
- {
- TFT_WRITE_DAT16(0xF800);
- }
- else
- {
- TFT_WRITE_DAT16(0xFFFF);
- }
- CommonDelay(0x2000);
- if(wDebug3==100)
- {
- CommonDelay(0x4000);
- }
- wDebug3++;
- }
- //OLED_SET_CMD();
- #endif
- }
- //wIconIndex+=(wBuff>>SYSFONT_MIN_ALO_EXP); // wBuff(unit in byte)
- wIconIndex+=(wBuff>>(SYSFONT_MIN_ALO_EXP-1)); // wBuff (unit in pixel) //((wBuff<<1)>>SYSFONT_MIN_ALO_EXP)
- wIconSize-=wBuff;
- }
- OledCtrlDis();
- }
- #endif
- //#if(1) // WHH 070128
- #if(!(_PM_PLAY_DEL_|_PM_DIR_DEL_)) // WHH 070128
- void OledDMAToLcdNew(BYTE bGuiIcon, WORD wIconIndex,BYTE bColStart, BYTE bRowStart, BYTE bWidth, BYTE bHeight) // WHH_301_061219 #1 (start)
- {
- WORD wIconSize;
- WORD wPixelIndex;
- WORD wByteIndex;
- WORD wBuff;
- #if(OLED_USE_MASK_DISPLAY)
- BYTE bKeepCLK;
- WORD wIndex;
- #endif
- OledCtrlEn();
- //wIconSize = (DWORD)bWidth*bHeight*2; // unit in byte
- wIconSize = (WORD)bWidth*(WORD)bHeight; // unit in pixel
- wPixelIndex=0;
- #if(OLED_USE_MASK_DISPLAY)
- if(!gfIconMaskEn)
- #endif
- {
- #if(LCD_TYPE==TFT_TOPPOLY||LCD_TYPE==TFT_SOLOMON) //Jim#TftSolomn // Jeff_070125#2
- #if(!_PM_VD_PLAY_) // WHH 070128
- TftSetWindow(bColStart,bRowStart,bWidth,bHeight);
- #else
- //if(wIconIndex ==IM_BG_CLEAR_TO_BLACK)
- /* if(wIconIndex ==IM_BG_VIDEO_CLEAR_TO_BLACK) // WHH 070126 //tony070129
- {
- //TftSetWindow(bColStart,bRowStart,bWidth,bHeight);
- TftSetWindow(bColStart,bRowStart,bWidth,bHeight);
- OledDrawDirection(OLED_RAM_ACCESS_MODE_COLUMN_FIRST);
- }
- else
- {*/
- LCD_ROT90_DISPLAY_EN();
- TftSetWindowRot(bRowStart,OLED_MAX_ROW-bColStart-1,bHeight,bWidth);
- // }
- #endif
- #elif(LCD_TYPE==TFT_ORISE)
- #if(_PM_VD_PLAY_)
- LCD_ROT90_DISPLAY_EN();
- #endif
- TftSetWindow(bColStart,bRowStart,bWidth,bHeight);
- #else
- OLED_WRITE(OLED_CMD_SET_COL_ADDR) ;
- OLED_WRITE(bColStart) ;
- OLED_WRITE(bColStart+bWidth-1) ;
- OLED_WRITE(OLED_CMD_SET_ROW_ADDR) ;
- OLED_WRITE(bRowStart) ;
- OLED_WRITE(bRowStart+bHeight-1) ;
- #endif
- }
- #if(LCD_TYPE==TFT_ORISE||LCD_TYPE==TFT_SOLOMON) //Jim#TftSolomn
- TFT_MEMORY_WRITE_START(); // Jeff_310_061220
- #endif
- while(wIconSize)
- {
- OledCtrlDis();
- // WHH #9 301_061229(start)
- //NandReadPhySec(gxwFontTable[FONT_SYS]+(wIconIndex>>SYSFONT_SECTOR_DIV), 1, SRAM_LYRICS_ADDR) ;
- NandReadPhySec(gxwFontTable[FONT_SYS+bGuiIcon]+(wIconIndex>>SYSFONT_SECTOR_DIV), 1, SRAM_LYRICS_ADDR) ;
- // WHH #9 301_061229(end)
- OledCtrlEn();
- wByteIndex = ((wIconIndex&SYSFONT_OFFSET_MASK)<<SYSFONT_MIN_ALO_EXP);
- //wBuff = (SECTOR_SIZE -wByteIndex); // unit in byte
- wBuff = (SECTOR_SIZE -wByteIndex)>>1; // unit in pixel
- if(wIconSize<=wBuff)
- wBuff=wIconSize;
- #if(OLED_USE_MASK_DISPLAY)
- //2 Send pixel with mask process (Slower)
- if(gfIconMaskEn)
- {
- bKeepCLK=obCLKMCUDIVF; //Walace060131#3
- SetSysSpeed(0x03);
- //for(wIndex=0;wIndex<wBuff;wIndex+=2) // unit in byte
- for(wIndex=0;wIndex<wBuff;wIndex+=1) // unit in pixel
- {
- OledDrawPoint(bColStart+wPixelIndex%bWidth,bRowStart+wPixelIndex/bWidth,*((PXWORD)(SRAM_LYRICS_ADDR+wByteIndex+wIndex)));
- wPixelIndex++;
- }
- SetSysSpeed(bKeepCLK); //Walace060131#3
- }
- //2 Send pixel data with DMA (Faster)
- else
- #endif
- {
- OLED_SET_DAT();
- // OledDMASramToSM(wByteIndex+=0x0800,wBuff); // wBuff(unit in byte)
- OledDMASramToSM(wByteIndex+=0x0800,(wBuff<<1)); // wBuff (unit in pixel)
- OLED_SET_CMD();
- }
- //wIconIndex+=(wBuff>>SYSFONT_MIN_ALO_EXP); // wBuff(unit in byte)
- wIconIndex+=(wBuff>>(SYSFONT_MIN_ALO_EXP-1)); // wBuff (unit in pixel) //((wBuff<<1)>>SYSFONT_MIN_ALO_EXP)
- wIconSize-=wBuff;
- }
- #if(LCD_TYPE==TFT_ORISE||LCD_TYPE==TFT_TOPPOLY||LCD_TYPE==TFT_SOLOMON) // WHH 070128
- #if(_PM_VD_PLAY_)
- OledDrawDirection(OLED_RAM_ACCESS_MODE_COLUMN_FIRST);
- #endif
- #endif
- OledCtrlDis();
- }
- #endif
- //#if(!(_PM_PLAY_DEL_|_PM_DIR_DEL_))
- #if(0) //not used now, tne 2007/01/08 #1
- void OledClearArea(BYTE bColStart, BYTE bRowStart, BYTE bWidth, BYTE bHeight)
- {
- #if(LCD_TYPE==TFT_ORISE||LCD_TYPE==TFT_TOPPOLY||LCD_TYPE==TFT_SOLOMON) //Jim#TftSolomn // Jeff070125#2
- BYTE bKeepCLK;
- WORD wIconIndex;
- #else
- WORD wAreaSize;
- #endif
- OledCtrlEn();
- #if(LCD_TYPE==TFT_ORISE||LCD_TYPE==TFT_TOPPOLY||LCD_TYPE==TFT_SOLOMON)//Jim#TftSolomn // Jeff070125#2
- bKeepCLK = obCLKMCUDIVF;
- SetSysSpeed(0x03);
- wIconIndex = ICON_BG_BLACK;
- wIconIndex++; // skip icon config information
- OledDMAToLcd(wIconIndex, bColStart, bRowStart, bWidth, bHeight);
- SetSysSpeed(bKeepCLK);
- #else
- wAreaSize = ((WORD)bWidth*(WORD)bHeight)/OLED_PROC_DELAY_DIV;
- OLED_WRITE(OLED_GCMD_CLEAR_WINDOW) ;
- OLED_WRITE(bColStart) ;
- OLED_WRITE(bRowStart) ;
- OLED_WRITE(bColStart+bWidth-1) ;
- OLED_WRITE(bRowStart+bHeight-1) ;
- CommonDelay(wAreaSize);
- #endif
- OledCtrlDis();
- }
- #endif
- #if(LCD_TYPE==TFT_ORISE)
- /*
- void TftMoveLine(BYTE bColStart, BYTE bRowStart,BYTE bWidth,BYTE bColTarget, BYTE bRowTarget,BOOL fReverse) large
- {
- // OledCopyArea(bColStart,bRowStart)
- BYTE bMove;
- bMove=0;
- while(bWidth)
- {
- if(bWidth<WORD1)
- {
- bMove=bWidth;
- bWidth=0;
- }
- else
- {
- bMove=WORD1;
- bWidth-=bMove;
- }
- OledReadIconToSram(FS_LRC,bColStart,bRowStart,bMove,LINE1);
- if(fReverse)
- SramDataReverse((PXBYTE)(SRAM_LYRICS_ADDR),(WORD)bMove*LINE1*3);
- OledShowIconFromSram(SRAM_LYRICS_ADDR,bColTarget,bRowTarget,bMove,LINE1);
- bColStart+=bMove;
- bColTarget+=bMove;
- }
- }
- */
- #endif
- #if(_LCD_COPY_)
- #if(LCD_TYPE==TFT_ORISE||LCD_TYPE==TFT_TOPPOLY||LCD_TYPE==TFT_SOLOMON) //Jim#TftSolomn // Jeff070125#2
- void SramDataReverse(PBYTE pbSram,WORD wDataSize) large
- {
- while(wDataSize)
- {
- wDataSize--;
- pbSram[wDataSize]=(~pbSram[wDataSize]);
- }
- }
- #endif
- #if((_LCD_COPY_)&(!_PM_VD_PLAY_)&(!_PM_FM_)) // WHH 070128
- void OledCopyArea(BYTE bColStart, BYTE bRowStart, BYTE bWidth, BYTE bHeight, BYTE bColTarget, BYTE bRowTarget)
- {
- #if((LCD_TYPE==TFT_ORISE)||(LCD_TYPE==TFT_TOPPOLY)||(LCD_TYPE==TFT_SOLOMON)) //Jim#TftSolomn // Jeff070125#2
- BYTE bKeepClk;
- BYTE bStepWidth,bStepHeight;
- BYTE bColKeep,bTargetColKeep;
- BYTE bKeepWidth; //Jim061201#1
- bKeepClk = obCLKMCUDIVF;
- SetSysSpeed(0x03);
- while(bHeight)
- {
- //WHH #7 301_061226
- //if(bHeight>LINE1)
- // bStepHeight = LINE1;
- if(bHeight>UI_FILST_ROW)
- bStepHeight = UI_FILST_ROW;
- else
- bStepHeight=bHeight;
- bHeight-=bStepHeight;
- bColKeep=bColStart;
- bTargetColKeep=bColTarget;
- bKeepWidth = bWidth; //Jim061201#1
- while(bKeepWidth) //Jim061201#1
- {
- //if(bKeepWidth>WORD1) //Jim061201#1
- // bStepWidth = WORD1;
- if(bKeepWidth>UI_FILST_COL) //WHH #7 301_061226
- bStepWidth = UI_FILST_COL;
- else
- bStepWidth=bKeepWidth;
- bKeepWidth-=bStepWidth; //Jim061201#1
- OledReadIconToSram(FS_LRC,bColStart,bRowStart,bStepWidth,bStepHeight);
- if(gxbCopyReverse)
- SramDataReverse((PXBYTE)(SRAM_LYRICS_ADDR),(WORD)bStepWidth*bStepHeight*3);
- OledShowIconFromSram(SRAM_LYRICS_ADDR,bColTarget,bRowTarget,bStepWidth,bStepHeight);
- bColStart+=bStepWidth;
- bColTarget+=bStepWidth;
- }
- bColStart=bColKeep;
- bColTarget=bTargetColKeep;
- bRowStart+=bStepHeight;
- bRowTarget+=bStepHeight;
- }
- SetSysSpeed(bKeepClk);
- #else
- WORD wAreaSize;
- OledCtrlEn();
- wAreaSize = ((WORD)bWidth*(WORD)bHeight)/OLED_PROC_DELAY_DIV;
- OLED_WRITE(OLED_GCMD_COPY) ;
- OLED_WRITE(bColStart) ;
- OLED_WRITE(bRowStart) ;
- OLED_WRITE(bColStart+bWidth-1) ;
- OLED_WRITE(bRowStart+bHeight-1) ;
- OLED_WRITE(bColTarget) ;
- OLED_WRITE(bRowTarget) ;
- CommonDelay(wAreaSize);
- OledCtrlDis();
- #endif
- }
- #endif // WHH 070128
- #endif
- //#if( (_PM_FLIST_&UI_USE_FILE_LIST) |_PM_FM_|_PM_SYS_|_PM_HST_|_PM_PHOTO_|(_PM_VIDEO_&!_PM_VD_MENU_)|_PM_CLIST_|_PM_CUSTOM_)//060814Renshuo#A // Jeff070125#3
- #if(_PM_SYS_|_PM_HST_)
- API void OledReverse(BYTE bColStart,BYTE bRowStart,BYTE bWidth,BYTE bHeight)
- {
- #if(LCD_TYPE==TFT_ORISE||LCD_TYPE==TFT_TOPPOLY||LCD_TYPE==TFT_SOLOMON)//Jim#TftSolomn // Jeff070125#2
- #if(!_PM_SYS_) // Jeff070125#3
- OledShowIconNew(1, IM_EXPLORE_BUTTON_CLEAR_ALL, 0, UI_FILST_LIGHT_START_ROW+gxbUiMenuSubStates*UI_FILST_LIGHT_ROW);
- #endif
- gxbCopyReverse=TRUE;
- OledCopyArea(bColStart,bRowStart,bWidth,bHeight,bColStart,bRowStart);
- gxbCopyReverse=FALSE;
- /*
- OledReadIconToSram(FS_LRC,bColStart,bRowStart,bWidth,bHeight);
- SramDataReverse((PXBYTE)(SRAM_LYRICS_ADDR),(WORD)bWidth*bHeight*3);
- OledShowIconFromSram(SRAM_LYRICS_ADDR,bColStart,bRowStart,bWidth,bHeight);
- */
- #else
- BYTE bKeepCLK;
- bKeepCLK = obCLKMCUDIVF; //Walace060131#3
- SetSysSpeed(0x08);
- OledCtrlEn();
- OLED_WRITE(OLED_GCMD_FILL_ENABLE) ;
- OLED_WRITE(OLED_REVERSE_COPY|OLED_NOT_FILL) ;
- OledCtrlDis() ;
- OledCopyArea(bColStart, bRowStart,bWidth,bHeight,bColStart,bRowStart);
- OledCtrlEn();
- OLED_WRITE(OLED_GCMD_FILL_ENABLE) ;
- OLED_WRITE(OLED_NOT_REVERSE_COPY|OLED_NOT_FILL) ;
- OledCtrlDis() ;
- SetSysSpeed(bKeepCLK); //Walace060131#3
- #endif
- }
- #endif
- //#if(!(_PM_SLS_|USE_TITLE_NUM_DEBUG)&OLED_USE_MASK_DISPLAY) //Walace051119 #1 //start
- //#if(_PM_PHOTO_|_PM_VIDEO_|_PM_SAVE_|_PM_HST_|_PM_SYS_|_PM_FM_|_PM_REC_|_PM_PLAY_|USE_TITLE_NUM_DEBUG|OLED_USE_MASK_DISPLAY|_PM_CUSTOM_)
- #if(_PM_PHOTO_|_PM_VIDEO_|_PM_HST_|_PM_SYS_|_PM_FM_|_PM_REC_|_PM_PLAY_|USE_TITLE_NUM_DEBUG|OLED_USE_MASK_DISPLAY|_PM_CUSTOM_|_PM_SAVE_)//WHH #4 301_061225 //tne 2007/01/24 #4
- void OledDrawPoint(BYTE bCol,BYTE bRow,WORD wColor)
- {
- #if(OLED_USE_MASK_DISPLAY)
- BOOL fPointInside = TRUE;
- if(gfIconMaskEn) //Walace051119 #1 //start
- {
- if(bCol<gxbMaskLeft||bCol>gxbMaskRight||bRow<gxbMaskTop||bRow>gxbMaskBottom)
- fPointInside = FALSE;
- if(gfMaskInside==fPointInside)
- return;
- }//Walace051119 #1 //end
- #endif
- #if(LCD_TYPE==TFT_ORISE||LCD_TYPE==TFT_TOPPOLY||LCD_TYPE==TFT_SOLOMON)//Jim#TftSolomn // Jeff070125#2
- #if(_PM_VD_PLAY_) // WHH 070130
- TftSetWindowRot(bRow,OLED_MAX_ROW-bCol-1,1,1);
- #else
- TftSetWindow(bCol,bRow,1,1);
- #endif
- TFT_MEMORY_WRITE_START();
- OLED_WRITE_WDATA(wColor);
- #else
- OLED_WRITE(OLED_CMD_SET_COL_ADDR) ;
- OLED_WRITE(bCol);
- OLED_WRITE(bCol);
- OLED_WRITE(OLED_CMD_SET_ROW_ADDR) ;
- OLED_WRITE(bRow);
- OLED_WRITE(bRow);
- OLED_SET_DAT();
- OLED_WRITE_WDATA(wColor) ;
- OLED_SET_CMD();
- #endif
- }
- #endif
- #if 0
- void OledDrawLine(BYTE bColStart, BYTE bRowStart, BYTE bColEnd, BYTE bRowEnd)
- {
- OledCtrlEn();
- OLED_WRITE(OLED_GCMD_DRAW_LINE) ;
- OLED_WRITE(bColStart) ;
- OLED_WRITE(bRowStart) ;
- OLED_WRITE(bColEnd) ;
- OLED_WRITE(bRowEnd) ;
- OLED_WRITE(((gxwFGColor&OLED_B_MASK)>>OLED_B_OFFSET)<<1) ;
- OLED_WRITE((gxwFGColor&OLED_G_MASK)>>OLED_G_OFFSET) ;
- OLED_WRITE(((gxwFGColor&OLED_R_MASK)>>OLED_R_OFFSET)<<1) ;
- OledCtrlDis();
- }
- #endif
- //#if(_PM_FM_|((_PM_PLAY_MAIN_|_PM_DVR_MAIN_|_PM_MENU_)&UI_USE_PROGRESS_BAR)|_PM_SYS_|_PM_VD_PLAY_|_PM_HST_|_PM_INIT_CHK_|((_PM_MENU_==1)&!_PM_DVR_)|(_PM_MENU_==2))
- #if(_PM_INIT_CHK_|_PM_SYS_|_PM_HST_) //tne 2007/01/14 #3
- void OledDrawRect(BYTE bColStart, BYTE bRowStart, BYTE bWidth, BYTE bHeight)
- {
- WORD wAreaSize;
- OledCtrlEn();
- #if(LCD_TYPE==TFT_ORISE)
- if(gfTransparent)
- {
- TftSetWindow(bColStart,bRowStart,bWidth,1);
- TFT_MEMORY_WRITE_START();
- for(wAreaSize=0;wAreaSize<bWidth;wAreaSize++)
- OLED_WRITE_WDATA(gxwFGColor);
- TftSetWindow(bColStart,bRowStart+bHeight-1,bWidth,1);
- TFT_MEMORY_WRITE_START();
- for(wAreaSize=0;wAreaSize<bWidth;wAreaSize++)
- OLED_WRITE_WDATA(gxwFGColor);
- OledDrawDirection(OLED_RAM_ACCESS_MODE_ROW_FIRST);
- TftSetWindow(bRowStart+1,bColStart,bHeight-2,1);
- TFT_MEMORY_WRITE_START();
- for(wAreaSize=0;wAreaSize<bHeight;wAreaSize++)
- OLED_WRITE_WDATA(gxwFGColor);
- TftSetWindow(bRowStart+1,bColStart+bWidth-1,bHeight-2,1);
- TFT_MEMORY_WRITE_START();
- for(wAreaSize=0;wAreaSize<bHeight;wAreaSize++)
- OLED_WRITE_WDATA(gxwFGColor);
- OledDrawDirection(OLED_RAM_ACCESS_MODE_COLUMN_FIRST);
- }
- else
- {
- TftSetWindow(bColStart,bRowStart,bWidth,bHeight);
- wAreaSize = (WORD)bWidth*bHeight;
- TFT_MEMORY_WRITE_START();
- for(wAreaSize=0;wAreaSize<((WORD)bWidth*bHeight);wAreaSize++)
- OLED_WRITE_WDATA(gxwFGColor);
- }
- #elif(LCD_TYPE==TFT_TOPPOLY) // Jeff070125#2
- if(gfTransparent)
- {
- TftSetWindow(bColStart,bRowStart,bWidth,1);
- TFT_MEMORY_WRITE_START();
- for(wAreaSize=0;wAreaSize<bWidth;wAreaSize++)
- OLED_WRITE_WDATA(gxwFGColor);
- TftSetWindow(bColStart,bRowStart+bHeight-1,bWidth,1);
- TFT_MEMORY_WRITE_START();
- for(wAreaSize=0;wAreaSize<bWidth;wAreaSize++)
- OLED_WRITE_WDATA(gxwFGColor);
- TftSetWindow(bColStart,bRowStart+1,1,bHeight-2); // Jeff_310_061220
- TFT_MEMORY_WRITE_START();
- for(wAreaSize=0;wAreaSize<bHeight;wAreaSize++)
- OLED_WRITE_WDATA(gxwFGColor);
- TftSetWindow(bColStart+bWidth-1,bRowStart+1,1,bHeight-2); // Jeff_310_061220
- TFT_MEMORY_WRITE_START();
- for(wAreaSize=0;wAreaSize<bHeight;wAreaSize++)
- OLED_WRITE_WDATA(gxwFGColor);
- }
- else
- {
- TftSetWindow(bColStart,bRowStart,bWidth,bHeight);
- wAreaSize = (WORD)bWidth*bHeight;
- TFT_MEMORY_WRITE_START();
- for(wAreaSize=0;wAreaSize<((WORD)bWidth*bHeight);wAreaSize++)
- OLED_WRITE_WDATA(gxwFGColor);
- }
- #elif(LCD_TYPE==TFT_SOLOMON) //Jim#TftSolomn
- if(gfTransparent)
- {
- TftSetWindow(bColStart,bRowStart,bWidth,1);
- TFT_MEMORY_WRITE_START();
- for(wAreaSize=0;wAreaSize<bWidth;wAreaSize++)
- OLED_WRITE_WDATA(gxwFGColor);
- TftSetWindow(bColStart,bRowStart+bHeight-1,bWidth,1);
- TFT_MEMORY_WRITE_START();
- for(wAreaSize=0;wAreaSize<bWidth;wAreaSize++)
- OLED_WRITE_WDATA(gxwFGColor);
- TftSetWindow(bColStart,bRowStart+1,1,bHeight-2);
- TFT_MEMORY_WRITE_START();
- for(wAreaSize=0;wAreaSize<bHeight;wAreaSize++)
- OLED_WRITE_WDATA(gxwFGColor);
- TftSetWindow(bColStart+bWidth-1,bRowStart+1,1,bHeight-2);
- TFT_MEMORY_WRITE_START();
- for(wAreaSize=0;wAreaSize<bHeight;wAreaSize++)
- OLED_WRITE_WDATA(gxwFGColor);
- }
- else
- {
- TftSetWindow(bColStart,bRowStart,bWidth,bHeight);
- wAreaSize = (DWORD)bWidth*bHeight;
- TFT_MEMORY_WRITE_START();
- for(wAreaSize=0;wAreaSize<(bWidth*bHeight);wAreaSize++)
- OLED_WRITE_WDATA(gxwFGColor);
- }
- #else
- OLED_WRITE(OLED_GCMD_FILL_ENABLE) ;
- if(gfTransparent)
- {
- OLED_WRITE(OLED_NOT_REVERSE_COPY|OLED_NOT_FILL) ;
- }
- else
- {
- OLED_WRITE(OLED_NOT_REVERSE_COPY|OLED_FILL) ;
- wAreaSize = ((WORD)bWidth*(WORD)bHeight)/OLED_PROC_DELAY_DIV;
- }
- OLED_WRITE(OLED_GCMD_DRAW_RECTANGLE) ;
- OLED_WRITE(bColStart) ;
- OLED_WRITE(bRowStart) ;
- OLED_WRITE(bColStart+bWidth-1) ;
- OLED_WRITE(bRowStart+bHeight-1) ;
- OLED_WRITE(((gxwFGColor&OLED_B_MASK)>>OLED_B_OFFSET)<<1) ;
- OLED_WRITE((gxwFGColor&OLED_G_MASK)>>OLED_G_OFFSET) ;
- OLED_WRITE(((gxwFGColor&OLED_R_MASK)>>OLED_R_OFFSET)<<1);
- OLED_WRITE(((gxwBGColor&OLED_B_MASK)>>OLED_B_OFFSET)<<1) ;
- OLED_WRITE((gxwBGColor&OLED_G_MASK)>>OLED_G_OFFSET) ;
- OLED_WRITE(((gxwBGColor&OLED_R_MASK)>>OLED_R_OFFSET)<<1) ;
- if(!gfTransparent)
- CommonDelay(wAreaSize);
- #endif
- OledCtrlDis();
- }
- #endif
- //#if(!((_PM_INIT_&!INIT_USE_BTY_LOW_FLAG)|_PM_USB_|_PM_REC_|_PM_SLS_|_PM_PHOTO_|_PM_PLAY_PRC_|_PM_FLIST_|_PM_CLIST_|_PM_PLAY_DEL_|_PM_DIR_DEL_|_PM_VD_MENU_|_PM_VD_LIST_|_PM_CUSTOM_))
- //#if(!((_PM_INIT_&!INIT_USE_BTY_LOW_FLAG)|_PM_SAVE_|_PM_USB_|_PM_REC_|_PM_SLS_|_PM_PHOTO_|_PM_PLAY_PRC_|_PM_FLIST_|_PM_CLIST_|_PM_PLAY_DEL_|_PM_DIR_DEL_|_PM_VD_MENU_|_PM_VD_LIST_|_PM_CUSTOM_)) // WHH #7 301_061226
- #if(!((_PM_INIT_&!INIT_USE_BTY_LOW_FLAG)|_PM_SAVE_|_PM_FM_|_PM_USB_|_PM_SLS_|_PM_PHOTO_|_PM_PLAY_PRC_|_PM_MENU_|_PM_FLIST_|_PM_CLIST_|_PM_VD_MENU_|_PM_VD_LIST_|_PM_CUSTOM_)) // WHH #7 301_061226
- void OledDrawDirection(BYTE bAccessDir)
- {
- if(bAccessDir==OLED_RAM_ACCESS_MODE_COLUMN_FIRST) //Column first (Horizontal Address Increment Mode)
- {
- #if(LCD_TYPE==TFT_ORISE)
- TFT_WRITE_CMD(0x36);
- TFT_WRITE_DAT(0x00);
- #elif(LCD_TYPE==TFT_TOPPOLY) // Jeff070125#2
- TFT_WRITE_CMD(0x09); // Jeff_310_061220
- TFT_WRITE_DAT(0x10);
- #elif(LCD_TYPE==TFT_SOLOMON) //Jim#TftSolomn
- TFT_WRITE_CMD(0x11);
- TFT_WRITE_DAT16(0x6830);
- #else
- OLED_WRITE(OLED_CMD_SET_REMAP_FORMAT) ;
- OLED_WRITE(OLED_5661_MAP_DRAWDIR_COL) ; //0110 0010
- //OledWaitForReady() ;
- #endif
- }
- else //Row first (Vertical Address Increment Mode)
- {
- #if(LCD_TYPE==TFT_ORISE)
- TFT_WRITE_CMD(0x36);
- TFT_WRITE_DAT(0x20);
- #elif(LCD_TYPE==TFT_TOPPOLY) // Jeff070125#2
- TFT_WRITE_CMD(0x09); // Jeff_310_061220
- TFT_WRITE_DAT(0x11);
- #elif(LCD_TYPE==TFT_SOLOMON) //Jim#TftSolomn
- TFT_WRITE_CMD(0x11);
- TFT_WRITE_DAT16(0x6838);
- #else
- OLED_WRITE(OLED_CMD_SET_REMAP_FORMAT) ;
- OLED_WRITE(OLED_5661_MAP_DRAWDIR_ROW) ; //0110 0010
- //OledWaitForReady() ;
- #endif
- }
- }
- #endif
- //#if(!(_PM_INIT_|_PM_USB_|_PM_SLS_|_PM_INIT_CHK_|_PM_PLAY_DEL_|_PM_DIR_DEL_)|USE_TITLE_NUM_DEBUG)
- #if(!(_PM_INIT_|_PM_USB_|_PM_SLS_|_PM_INIT_CHK_|_PM_PLAY_DEL_|_PM_DIR_DEL_)|USE_TITLE_NUM_DEBUG)//WHH #4 301_061225 //tne 2007/01/24 #4
- void OledShowBitsIcon(PBYTE pbDataSource,BYTE bColStart,BYTE bRowStart,BYTE bWidth,BYTE bPageHeight)
- {
- BYTE bPage ;
- BYTE bCol ;
- BYTE bBit ;
- BYTE bKeepCLK;
- OledCtrlEn();
- bKeepCLK = obCLKMCUDIVF; //Walace060131#3
- SetSysSpeed(0x03);
- if((bColStart+bWidth-1)>gxbLcdLimitCol)
- gxbLcdDispLimPix=gxbLcdLimitCol-bColStart+1;
- else
- gxbLcdDispLimPix=0;
- for(bPage=0; bPage<bPageHeight; bPage++)
- {
- for(bCol=bColStart; bCol<(bColStart+bWidth); bCol++)
- {
- if(bCol<=gxbLcdLimitCol) // Walace051012
- {
- for(bBit=0; bBit<8; bBit++)
- {
- if((*pbDataSource)&(1<<bBit))
- OledDrawPoint(bCol,bRowStart+PAGE2PIXEL(bPage)+bBit,gxwFGColor);
- else if(!gfTransparent)
- OledDrawPoint(bCol,bRowStart+PAGE2PIXEL(bPage)+bBit,gxwBGColor);
- }
- }
- pbDataSource++;
- }
- }
- SetSysSpeed(bKeepCLK); //Walace060131#3
- OledCtrlDis();
- }
- #endif
- //SRAM_LYRICS_ADDR = 0xc800
- //SRAM_DMA_ADDRESS
- //#if(!_PM_PLAY_PRC_) //Walace060830#3
- #if 1
- void OledDMASramToSM(WORD wDMASramAdd,WORD wDataSize)
- {
- BYTE bKeepSMMode;
- BYTE bKeepMcuDiv; //Walace070131#1
- BYTE bKeepSmCtrl;
- //3 Keep register value
- bKeepSMMode=obSMMODE;
- obSMMODE = 0x30; //2048Byte
- //Walace070109#1 start // Jeff check why
- bKeepSmCtrl=obCLKSMCTRL;
- obCLKSMCTRL=0xD0;
- bKeepMcuDiv=obCLKMCUDIVF;
- SetSysSpeed(LCD_DMA_WRITE_SPEED);
- //Walace070109#1 end
- //3 Select target
- obMODSEL3 &= NOTBYPASS_RAJ; //not bypass RA
- obSOURCEPATHCTRL = 0x00; //Source Dis
- obTARGETPATHCTRL = 0x00; //Target Dis
- obTARGETPATHCTRL = SELECT_SM;
- //3 Select source data address
- obRACTL = RA_INIT;
- obRACTL = RA_COPY_MODE;
- obRAINIADRL = wDMASramAdd& 0x00FF; //start at 0xC800
- obRAINIADRH = (wDMASramAdd>>8)&0x1F;
- obRAINIADRH |= RA_ADDR_LOAD;
- //3Set source data length
- obRABANKSIZEH = wDataSize>>8;
- obRABANKSIZEL = (BYTE)wDataSize;
- //3Set terminal condition
- obTCNTLDDATAH=wDataSize>>9; // (wDataSize >>1 for word unit) >>8 for hbyte
- obTCNTLDDATAL=(BYTE)(wDataSize>>1);
- obTCNTCTRL|=TCOUNT_LOAD;
- obTCNTCTRL&=TCOUNT_LOAD_DIS;
- obTCNTCTRL&=TCOUNT_ENJ;
- //3 DMA Startup
- obRACTL=(RA_DMA_EN|RA_COPY_MODE);
- obSMCTRL=NAND_DATA; //050125: clear SM_HOST_STOP
- obSMECCAUTOCOR=0x00; //050802
- obSMDMACTRL = SM_DMA_EN_OUT;
- while(obTCNTCTRL&0x01)
- { }
- //3Disable DMA
- obRACTL=RA_NORMAL;
- obSMDMACTRL = SM_DMA_DIS;
- obTCNTCTRL|=TCOUNT_DIS;
- obSOURCEPATHCTRL = 0x00; //Source Dis
- obTARGETPATHCTRL = 0x00; //Target Dis
- obSMMODE |= 0x80; //0930 ECC Init start
- obSMMODE &= 0x7F;
- //3 Restore keep value
- obSMMODE = bKeepSMMode;
- obCLKSMCTRL=bKeepSmCtrl; //Walace070109#1
- //obCLKMCUDIVF=bKeepSmCtrl; //Walace070109#1
- SetSysSpeed(bKeepMcuDiv); //Walace070131#1 // WHH070228#1
- }
- #endif //Walace060830#3
- #if(_LCD_SHOW_ICON_FROM_SRAM_)
- API void OledShowIconFromSram(WORD wSramAdd,BYTE bColStart,BYTE bRowStart,BYTE bWidth,BYTE bHeight)
- {
- WORD wIconSize;
- #if(OLED_USE_MASK_DISPLAY)
- BYTE bKeepCLK;
- WORD wPixelIndex;
- #endif
- OledCtrlEn();
- #if(LCD_TYPE==TFT_ORISE) // Jeff070125#2
- SET_PIXEL_FORMAT_18BITS();
- TftSetWindow(bColStart,bRowStart,bWidth,bHeight);
- TFT_MEMORY_WRITE_START();
- #elif(LCD_TYPE==TFT_SOLOMON)
- TftSetWindow(bColStart,bRowStart,bWidth,bHeight);
- TFT_MEMORY_WRITE_START();
- #elif(LCD_TYPE==TFT_TOPPOLY) // Jeff070125#2
- wIconSize = (WORD)bWidth*bHeight*2; // 2bit/1pixel
- TftSetWindow(bColStart,bRowStart,bWidth,bHeight);
- TFT_MEMORY_WRITE_START();
- #else
- OLED_WRITE(OLED_CMD_SET_COL_ADDR) ;
- OLED_WRITE(bColStart) ;
- OLED_WRITE(bColStart+bWidth-1) ;
- OLED_WRITE(OLED_CMD_SET_ROW_ADDR) ;
- OLED_WRITE(bRowStart) ;
- OLED_WRITE(bRowStart+bHeight-1) ;
- #endif
- wIconSize = (DWORD)bWidth*bHeight*BYTES_PER_PIXEL; // 3bit/1pixel
- #if(OLED_USE_MASK_DISPLAY)
- //2 Send pixel with mask process (Slower)
- if(gfIconMaskEn)
- {
- bKeepCLK = obCLKMCUDIVF; //Walace060131#3
- SetSysSpeed(0x03);
- for(wPixelIndex=0;wPixelIndex<wIconSize;wPixelIndex+=2)
- OledDrawPoint(bColStart+wPixelIndex%bWidth,bRowStart+wPixelIndex/bWidth,*((PWORD)(wSramAdd+wPixelIndex)));
- SetSysSpeed(bKeepCLK); //Walace060131#3
- }
- //2 Send pixel data with DMA (Faster)
- else
- #endif
- {
- #if(LCD_TYPE==TFT_ORISE||LCD_TYPE==TFT_TOPPOLY||LCD_TYPE==TFT_SOLOMON) //Jim#TftSolomn // Jeff070125#2
- if(wIconSize>=0x800)
- {
- OledDMASramToSM(wSramAdd-0xC000,wIconSize-2);
- LCD_WRITE(*((PBYTE)wSramAdd+0x7FF));
- LCD_WRITE(*((PBYTE)wSramAdd+0x7FE));
- }
- else
- OledDMASramToSM(wSramAdd-0xC000,wIconSize);
- #else
- OLED_SET_DAT();
- if(wIconSize>=0x800)
- {
- OledDMASramToSM(wSramAdd-0xC000,wIconSize-2);
- OLED_WRITE(*((PBYTE)wSramAdd+0x7FF));
- OLED_WRITE(*((PBYTE)wSramAdd+0x7FE));
- }
- else
- OledDMASramToSM(wSramAdd-0xC000,wIconSize);
- OLED_SET_CMD();
- #endif
- }
- #if(LCD_TYPE==TFT_ORISE)
- SET_PIXEL_FORMAT_16BITS();
- #endif
- OledCtrlDis();
- }
- #endif
- #if(_LCD_READ_ICON_)
- API void OledReadIconToSram(BYTE bSramType,BYTE bColStart,BYTE bRowStart,BYTE bWidth,BYTE bHeight) //Walace060213#1 start
- {
- BYTE bKeepSMMode;
- BYTE bKeepSmCtrl;
- BYTE bReadCount;
- //Walace060213#1 start
- WORD wSramAdd;
- switch(bSramType)
- {
- case FS_DATA_0_0:
- gxdwKeptDataSec=FORCE_REFLASH_SECTOR;
- wSramAdd = 0xD800;
- break;
- case FS_FAT:
- gxdwKeptFatSec=FORCE_REFLASH_SECTOR;
- wSramAdd = 0xD000;
- break;
- case FS_LRC:
- gxdwKeptLrcSec=FORCE_REFLASH_SECTOR;
- wSramAdd = 0xC800;
- break;
- }
- #if 0
- OledCtrlEn();
- SET_PIXEL_FORMAT_18BITS();
- TftSetWindow(bColStart,bRowStart,bWidth,bHeight);
- TFT_MEMORY_READ_START();
- SET_PIXEL_FORMAT_16BITS();
- OledCtrlDis();
- #endif
- OledCtrlEn();
- #if(LCD_TYPE==TFT_ORISE)
- SET_PIXEL_FORMAT_18BITS();
- #define BYTES_PER_PIXEL 3
- TftSetWindow(bColStart,bRowStart,bWidth,bHeight);
- TFT_MEMORY_READ_START();
- LCD_READ(bKeepSMMode); //dummy read
- #elif(LCD_TYPE==TFT_TOPPOLY) // Jeff070125#2
- #define BYTES_PER_PIXEL 2 // Jeff_310_061220
- TftSetWindow(bColStart,bRowStart,bWidth,bHeight);
- TFT_MEMORY_READ_START();
- LCD_READ(bKeepSMMode); //dummy read twice // Jeff_310_061220
- LCD_READ(bKeepSMMode);
- #elif(LCD_TYPE==TFT_SOLOMON) //Jim#TftSolomn
- TftSetWindow(bColStart,bRowStart,bWidth,bHeight);
- TFT_MEMORY_READ_START();
- LCD_READ(bKeepSMMode); //dummy read
- #else
- #define BYTES_PER_PIXEL 2
- OLED_WRITE(OLED_CMD_SET_COL_ADDR) ;
- OLED_WRITE(bColStart) ;
- OLED_WRITE(bColStart+bWidth-1) ;
- OLED_WRITE(OLED_CMD_SET_ROW_ADDR) ;
- OLED_WRITE(bRowStart) ;
- OLED_WRITE(bRowStart+bHeight-1) ;
- OLED_SET_DAT();
- OLED_READ(bKeepSMMode); //dummy read
- #endif
- bReadCount=0;
- while((0x100<<bReadCount)<((WORD)bWidth*bHeight*BYTES_PER_PIXEL))
- bReadCount++;
- if(bReadCount>0x03) // Walace050921
- bReadCount=0x03;
- //3 Keep register value
- bKeepSMMode=obSMMODE;
- obSMMODE = bReadCount<<4; //0x00 256, 0x10:512Byte 0x20:1024Bytes, 0x30:2048bytes
- bKeepSmCtrl=obCLKMCUDIVF; //Walace070109#1
- SetSysSpeed(LCD_DMA_READ_SPEED); //Walace070109#1
- //bKeepSmCtrl=obCLKSMCTRL; //Walace070109#1
- //obCLKSMCTRL=0xD0; //Walace070109#1
- //Walace070109#1 end
- obGPIOCDAT = (obGPIOCDAT&0x0F)|0xE0; // Data
- //3 Select target
- obMODSEL3 &= NOTBYPASS_RAJ; //not bypass RA
- obSOURCEPATHCTRL = 0x00; //Source Dis
- obTARGETPATHCTRL = 0x00; //Target Dis
- obSOURCEPATHCTRL = SELECT_SM;
- //obTARGETPATHCTRL = SELECT_SM; //Target Dis
- //3 Select source data address
- obRACTL = RA_INIT;
- obRACTL = RA_COPY_MODE;
- obRAINIADRL = (wSramAdd-0xC000) & 0x00FF; //start at 0xC800
- obRAINIADRH = (((wSramAdd-0xC000) >> 8) & 0x1F);
- obRAINIADRH |= RA_ADDR_LOAD;
- //3Set source data length
- obRABANKSIZEH =1<<bReadCount;
- obRABANKSIZEL = 0; //(BYTE)(wDataLength&0x00FF);
- //3DMA Startup
- obRACTL=(RA_DMA_EN|RA_COPY_MODE);
- obSMCTRL=NAND_DATA; //050125: clear SM_HOST_STOP
- obSMECCAUTOCOR=0x00; //050802
- obSMDMACTRL = SM_DMA_EN_IN; //FE6A
- while(!(obSMINTFLAG&0x80))
- {
- }
- //3 Disable DMA
- obRACTL=RA_NORMAL;
- obSMDMACTRL = SM_DMA_DIS;
- obTCNTCTRL|=TCOUNT_DIS;
- obSOURCEPATHCTRL = 0x00; //Source Dis
- obTARGETPATHCTRL = 0x00; //Target Dis
- obSMMODE |= 0x80; //0930 ECC Init start
- obSMMODE &= 0x7F;
- //3Restore keep value
- obSMMODE = bKeepSMMode;
- //obCLKSMCTRL=bKeepSmCtrl; //Walace070109#1
- obCLKMCUDIVF=bKeepSmCtrl; //Walace070109#1
- SetSysSpeed(bKeepSmCtrl); // WHH070228#1
- #if(LCD_TYPE==TFT_ORISE)
- SET_PIXEL_FORMAT_16BITS();
- #elif(LCD_TYPE==TFT_SOLOMON) //Jim#TftSolomn
- LCD_SET_CMD();
- #elif(LCD_TYPE==TFT_TOPPOLY)
- #else
- OLED_SET_CMD();
- #endif
- OledCtrlDis();
- #undef BYTES_PER_PIXEL
- }
- #endif
- //#if(!(_PM_SLS_|_PM_PLAY_DEL_|_PM_DIR_DEL_)) //Walace060806#2
- //#if(!_PM_PLAY_PRC_) //Walace060830#3
- //#if(1) //Walace060830#3
- //Walace061228#CodeSize
- #if(0) //tne 2007/01/16 #1
- API void OledShowIcon(WORD wIconIndex,BYTE bColStart,BYTE bRowStart)
- {
- // WORD wIconSize;
- WORD wByteIndex;
- BYTE bWidth;
- BYTE bHeight;
- //Get the icon data information for first allocate unit data
- OledCtrlDis();
- NandReadPhySec(gxwFontTable[FONT_SYS]+(wIconIndex>>SYSFONT_SECTOR_DIV), 1, SRAM_LYRICS_ADDR) ;
- OledCtrlEn();
- wByteIndex = ((wIconIndex&SYSFONT_OFFSET_MASK)<<SYSFONT_MIN_ALO_EXP);
- bHeight = *((PXBYTE)SRAM_LYRICS_ADDR+wByteIndex);
- bWidth = *((PXBYTE)SRAM_LYRICS_ADDR+wByteIndex+1);
- wIconIndex++;
- OledDMAToLcd(wIconIndex, bColStart, bRowStart, bWidth, bHeight);
- //wIconSize = (DWORD)bWidth*bHeight*2; // unit in byte
- //wIconSize = (WORD)bWidth*bHeight; // unit in pixel
- }
- #endif
- //#endif //#if(!_PM_SLS_) //Walace060830#3
- //#if(1) // WHH 070128
- #if(!(_PM_PLAY_DEL_|_PM_DIR_DEL_)) // WHH 070128
- API void OledShowIconNew(BYTE bGuiIcon, WORD wIconIndex,BYTE bColStart,BYTE bRowStart) large// WHH_301_061219 #1 (start)
- {
- // WORD wIconSize;
- WORD wByteIndex;
- BYTE bWidth;
- BYTE bHeight;
- //Get the icon data information for first allocate unit data
- OledCtrlDis();
- // WHH #9 301_061229(start)
- NandReadPhySec(gxwFontTable[FONT_SYS+bGuiIcon]+(wIconIndex>>SYSFONT_SECTOR_DIV), 1, SRAM_LYRICS_ADDR) ;
- // WHH #9 301_061229(end)
- OledCtrlEn();
- wByteIndex = ((wIconIndex&SYSFONT_OFFSET_MASK)<<SYSFONT_MIN_ALO_EXP);
- bHeight = *((PXBYTE)SRAM_LYRICS_ADDR+wByteIndex);
- bWidth = *((PXBYTE)SRAM_LYRICS_ADDR+wByteIndex+1);
- wIconIndex++;
- OledDMAToLcdNew(bGuiIcon, wIconIndex, bColStart, bRowStart, bWidth, bHeight);
- //wIconSize = (DWORD)bWidth*bHeight*2; // unit in byte
- //wIconSize = (WORD)bWidth*bHeight; // unit in pixel
- } // WHH_301_061219 #1 (end)
- #endif
- //Walace060806#3 start
- #if((_PM_INIT_|_PM_SAVE_)&(PW_ON_USE_ANIMATION|PW_OFF_USE_ANIMATION)) //tne 2007/01/04 #1
- API void ShowAnimation(WORD wStartFrameAdd,WORD wFrameOffset,BYTE bFrameNum,BYTE bColStart,BYTE bRowStart,WORD wDelayTime) large
- {
- BYTE bPicIndex;
- WORD wKeepSysFontIndex;
- //WORD wFramePitch;
- BYTE bKeepCLK;
- wKeepSysFontIndex=gxwFontTable[FONT_SYS];
- //tne 2007/01/04 #1 start
- #if(_PM_SAVE_)
- gxwFontTable[FONT_SYS] = gxwFontTable[FONT_CLOSE_ANI];
- #else
- gxwFontTable[FONT_SYS] = gxwFontTable[FONT_ANIMATION];
- #endif
- //tne 2007/01/04 #1 end
- bKeepCLK=obCLKMCUDIVF; //Walace060131#3
- SetSysSpeed(0x03);
- OledCtrlDis();
- NandReadPhySec(gxwFontTable[FONT_SYS]+(wStartFrameAdd>>SYSFONT_SECTOR_DIV), 1, SRAM_LYRICS_ADDR) ;
- OledCtrlEn();
- // wOffsetIndex = ((wOffsetIndex&SYSFONT_OFFSET_MASK)<<SYSFONT_MIN_ALO_EXP);
- /*
- //Height
- wFramePitch = *((PXBYTE)SRAM_LYRICS_ADDR+wOffsetIndex);
- //Frame pitch = Height*Width*2 / SYSFONT_MIN_ALO_SIZE
- wFramePitch = (wFramePitch * (*((PXBYTE)SRAM_LYRICS_ADDR+wOffsetIndex+1)))>>(SYSFONT_MIN_ALO_EXP-1);
- //icon information occupy one unit
- wFramePitch++;
- */
- for(bPicIndex=0;bPicIndex<bFrameNum;bPicIndex++)
- {
- // WHH #5 301_061225(start)
- //OledShowIcon(wStartFrameAdd+bPicIndex*wFrameOffset,bColStart,bRowStart);
- OledShowIconNew(0, wStartFrameAdd+bPicIndex*wFrameOffset,bColStart,bRowStart);
- // WHH #5 301_061225(end)
- CommonDelay(wDelayTime);
- //wOffsetIndex +=wFramePitch;
- }
- SetSysSpeed(bKeepCLK); //Walace060131#3
- gxwFontTable[FONT_SYS] = wKeepSysFontIndex;
- }
- #endif //#if(_PM_INIT_|(PW_ON_USE_ANIMATION|PW_OFF_USE_ANIMATION))
- //Walace060806#3 end
- //#if(_PM_VIDEO_|_PM_PHOTO_|(_PM_PLAY_&!_PM_SLS_)|_PM_REC_|_PM_FM_|_PM_SYS_|_PM_HST_|USE_TITLE_NUM_DEBUG|SHOW_BATT_VALUE|_PM_CUSTOM_) //tne 2005/12/17 //Vicky060301 // Jeff070125#2
- #if(_PM_SAVE_|_PM_VD_PLAY_|_PM_VD_LIST_|_PM_USB_|_PM_PHOTO_|_PM_PLAY_MAIN_|_PM_PLAY_PRC_|_PM_DVR_MAIN_|_PM_REC_|_PM_FM_|_PM_SYS_|_PM_HST_|USE_TITLE_NUM_DEBUG|SHOW_BATT_VALUE) //tne 2005/12/17 //Vicky060301
- #if(USE_TITLE_NUM_DEBUG)
- API void OledShowNumber(WORD wShowNum,BYTE bColStart,BYTE bRowStart,BYTE bNumLen) large
- #else
- API void OledShowNumber(WORD wShowNum,BYTE bColStart,BYTE bRowStart,BYTE bNumLen)
- #endif
- {
- BYTE bI,bN;
- for(bI=bNumLen;bI>0;bI--)
- {
- bN=wShowNum%10;
- wShowNum /= 10;
- //Walace051119 #1
- #if(USE_TITLE_NUM_DEBUG)
- OledShowBitsIcon(cbNumberChar+bN*5,
- bColStart+(bI-1)*(CB_NUMBER_GAP+CB_NUMBER_COL)+CB_NUMBER_GAP,
- bRowStart,
- CB_NUMBER_COL,
- CB_NUMBER_PAGE);
- #else
- // WHH #13 301_070105S
- /*OledShowIcon(ICON_DIGIT_68N00+bN*ICON_DIGIT68_PITCH,
- bColStart+(bI-1)*ICON_NUMBER_COL,bRowStart);*/
- #if(_PM_VD_PLAY_)
- OledShowIconNew(1,IM_MOVIE_SMALLNUMBER_0+bN*UI_IM_MOVIE_SMALLNUMBER_PITCH,
- bColStart+(bI-1)*6,bRowStart);
- #else
- OledShowIconNew(1,IM_MUSIC_SMALLNUMBER_0+bN*UI_IM_MUSIC_SMALLNUMBER_PITCH,
- bColStart+(bI-1)*6,bRowStart);
- #endif
- #endif
- }
- }
- #endif //_PM_PLAY_|_PM_REC_|_PM_FM_|_PM_SYS_
- //tne 2005/11/24 #2 //Walace060926#1 VideoResume
- #if(_PM_VD_LIST_|(_PM_VD_PLAY_&&VIDEO_FORMAT_VERSION_DISPLAY))
- API void OledShowBigNumber(WORD wShowNum,BYTE bColStart,BYTE bRowStart,BYTE bNumLen) large
- {
- BYTE bI,bN[5];
- for(bI=bNumLen;bI>0;bI--)
- {
- bN[bI-1]=(wShowNum%10)+0x30;
- wShowNum /= 10;
- //OledShowIcon(ICON_DIGIT_68N00+bN*ICON_DIGIT68_PITCH,
- // bColStart+(bI-1)*CB_NUMBER_COL,bRowStart);
- }
- StrShowString(&bN,bColStart,bRowStart,bNumLen);
- }
- #endif
- #if(_PM_PLAY_&!(_PM_FLIST_|_PM_MENU_|_PM_CLIST_|_PM_PLAY_PRC_)&UI_USE_SPECTRUM)
- void OledShowSpectrum(BOOL fShow)
- {
- fShow=fShow; //test now... // Jeff070125#2 not support spectrum temporary
- #if(0) //test now...
- BYTE bI, bJ; //Walace061228#CodeSize
- #if(LCD_TYPE==TFT_ORISE||LCD_TYPE==TFT_TOPPOLY||LCD_TYPE==TFT_SOLOMON) //Jim#TftSolomn // Jeff070125#2
- BYTE bK;
- #endif
- WORD wVolume;
- OledCtrlEn();
- #if(LCD_TYPE==TFT_ORISE||LCD_TYPE==TFT_TOPPOLY||LCD_TYPE==TFT_SOLOMON) //Jim#TftSolomn // Jeff070125#2
- for(bJ=0; bJ<2; bJ++)
- {
- if(fShow)
- {
- if(bJ==0)
- IdmaPioDmxR(DSP_LEFT_VOLUME_ADDR,&wVolume,1,DSP_W16);
- else
- IdmaPioDmxR(DSP_RIGHT_VOLUME_ADDR,&wVolume,1,DSP_W16);
- wVolume = wVolume >> 9 ;
- if(wVolume >= 16 )
- wVolume = 16;
- }
- else
- wVolume = 0;
- for(bI=0;bI<16;bI+=2)
- {
- TftSetWindow(bJ*90,31-bI,7,1);
- TFT_MEMORY_WRITE_START();
- if(bI<wVolume)
- {
- #if(OLED_COLOR_FIELD_TYPE==OLED_FILED_RGB565)
- for(bK=0;bK<7;bK++)
- OLED_WRITE_WDATA(OLED_RED|(((WORD)bI*4)<<5)) ;
- #else
- for(bK=0;bK<7;bK++)
- OLED_WRITE_WDATA(OLED_RED|(((WORD)bI*4)<<5)) ;
- #endif
- }
- else
- {
- for(bK=0;bK<7;bK++)
- OLED_WRITE_WDATA(OLED_BLACK);
- }
- }
- }
- #else
- for(bJ=0; bJ<2; bJ++)
- {
- if(fShow)
- {
- if(bJ==0)
- IdmaPioDmxR(DSP_LEFT_VOLUME_ADDR,&wVolume,1,DSP_W16);
- else
- IdmaPioDmxR(DSP_RIGHT_VOLUME_ADDR,&wVolume,1,DSP_W16);
- wVolume = wVolume >> 9 ;
- if(wVolume >= 16 )
- wVolume = 16;
- }
- else
- wVolume = 0;
- for(bI=0;bI<16;bI+=2)
- {
- OLED_WRITE(OLED_GCMD_DRAW_LINE) ;
- OLED_WRITE(bJ*90) ;
- OLED_WRITE(31-bI) ;
- OLED_WRITE(bJ*90+5) ;
- OLED_WRITE(31-bI) ;
- if(bI<wVolume)
- {
- #if(OLED_COLOR_FIELD_TYPE==OLED_FIELD_BGR565)
- OLED_WRITE(0x00) ;
- OLED_WRITE(3+4*bI) ; //0x3F-(15-bI)*4 = 63-60+4bI
- OLED_WRITE(0x3E) ;
- #else
- OLED_WRITE(0x3E) ;
- OLED_WRITE(3+4*bI) ; //0x3F-(15-bI)*4 = 63-60+4bI
- OLED_WRITE(0x00) ;
- #endif
- }
- else
- {
- OLED_WRITE(0x00) ;
- OLED_WRITE(0x00) ;
- OLED_WRITE(0x00) ;
- }
- }
- }
- #endif
- OledCtrlDis();
- #endif
- }
- #endif //#if(_PM_PLAY_&!_PM_FLIST_&!_PM_MENU_&UI_USE_SPECTRUM)
- //#if(((_PM_PLAY_&!(_PM_FLIST_|_PM_CLIST_|_PM_PLAY_PRC_))|_PM_FM_|_PM_SYS_|_PM_INIT_CHK_|_PM_VD_PLAY_)&UI_USE_PROGRESS_BAR)
- #if((_PM_PLAY_MAIN_|_PM_DVR_MAIN_|_PM_SYS_|_PM_INIT_CHK_|_PM_REC_|_PM_PLAY_DEL_|_PM_DIR_DEL_)&UI_USE_PROGRESS_BAR)// WHH #13 301_070107
- void ShowProgress(BYTE bColStart,BYTE bRowStart,BYTE bValue)
- {
- #if(LCD_TYPE==TFT_ORISE||LCD_TYPE==TFT_SOLOMON) //Jim#TftSolomn
- #if(!_PM_INIT_CHK_)
- BYTE bKeepClk;
- #endif
- WORD wI;
- #if(!_PM_INIT_CHK_)
- bKeepClk= obCLKMCUDIVF;
- SetSysSpeed(0x03);
- #endif
- if(bValue>PROGRESS_MAX)
- bValue = PROGRESS_MAX;
- // gfTransparent=TRUE;
- // OledDrawRect(bColStart,bRowStart,PROGRESS_MAX+2,6);
- // gfTransparent=FALSE;
- OledCtrlEn();
- OledDrawDirection(OLED_RAM_ACCESS_MODE_ROW_FIRST);
- TftSetWindow(bRowStart+1,bColStart+1,4,PROGRESS_MAX);
- TFT_MEMORY_WRITE_START();
- for(wI=0; wI<((WORD)bValue<<2); wI++)
- OLED_WRITE_WDATA(OLED_RED) ;
- for(wI=0; wI<((PROGRESS_MAX-(WORD)bValue)<<2); wI++)
- OLED_WRITE_WDATA(OLED_BG_COLOR) ;
- OledDrawDirection(OLED_RAM_ACCESS_MODE_COLUMN_FIRST);
- OledCtrlDis();
- #if(!_PM_INIT_CHK_)
- SetSysSpeed(bKeepClk);
- #endif
- #elif(LCD_TYPE==TFT_TOPPOLY) // Jeff070125#2
- #if(!_PM_INIT_CHK_)
- BYTE bKeepClk;
- #endif
- WORD wI;
- #if(!_PM_INIT_CHK_)
- bKeepClk= obCLKMCUDIVF;
- SetSysSpeed(0x03);
- #endif
- if(bValue>PROGRESS_MAX)
- bValue = PROGRESS_MAX;
- OledCtrlEn();
- OledDrawDirection(OLED_RAM_ACCESS_MODE_ROW_FIRST);
- TftSetWindow(bColStart+1,bRowStart,PROGRESS_MAX,1);
- TFT_MEMORY_WRITE_START();
- for(wI=0; wI<((WORD)bValue); wI++)
- #if(!_PM_REC_)//WHH #13 301_070106
- OLED_WRITE_WDATA(OLED_WHITE) ;
- #else
- OLED_WRITE_WDATA(OLED_RED) ;
- #endif
- for(wI=0; wI<((PROGRESS_MAX-(WORD)bValue)); wI++)
- OLED_WRITE_WDATA(OLED_BG_COLOR) ;
- OledDrawDirection(OLED_RAM_ACCESS_MODE_COLUMN_FIRST);
- OledCtrlDis();
- #if(!_PM_INIT_CHK_)
- SetSysSpeed(bKeepClk);
- #endif
- #else
- WORD wI;
- if(bValue>PROGRESS_MAX)
- bValue = PROGRESS_MAX;
- OledCtrlEn();
- OledDrawDirection(OLED_RAM_ACCESS_MODE_ROW_FIRST);
- OLED_WRITE(OLED_CMD_SET_COL_ADDR) ;
- OLED_WRITE(bColStart+1) ;
- OLED_WRITE(bColStart+PROGRESS_MAX) ;
- OLED_WRITE(OLED_CMD_SET_ROW_ADDR) ;
- OLED_WRITE(bRowStart+1) ;
- OLED_WRITE(bRowStart+4) ;
- OLED_SET_DAT();
- for(wI=0; wI<((WORD)bValue<<2); wI++)
- OLED_WRITE_WDATA(OLED_RED) ;
- for(wI=0; wI<((PROGRESS_MAX-(WORD)bValue)<<2); wI++)
- OLED_WRITE_WDATA(OLED_BG_COLOR) ;
- OLED_SET_CMD();
- OledDrawDirection(OLED_RAM_ACCESS_MODE_COLUMN_FIRST) ;
- OledCtrlDis();
- #endif
- }
- #elif(_PM_VD_PLAY_&UI_USE_PROGRESS_BAR) // WHH 070114
- void ShowProgress(BYTE bPrograssMax, BYTE bColStart,BYTE bRowStart,BYTE bValue)
- {
- #if(LCD_TYPE==TFT_ORISE||LCD_TYPE==TFT_TOPPOLY||LCD_TYPE==TFT_SOLOMON) // Jeff070125#2
- #if(!_PM_INIT_CHK_)
- BYTE bKeepClk;
- #endif
- WORD wI;
- #if(!_PM_INIT_CHK_)
- bKeepClk= obCLKMCUDIVF;
- SetSysSpeed(0x03);
- #endif
- OledCtrlEn();
- OledDrawDirection(OLED_RAM_ACCESS_MODE_ROW_FIRST);
- LCD_ROT90_DISPLAY_EN(); // WHH 070128
- //TftSetWindowRot(bColStart+1,bRowStart,bPrograssMax,1); // WHH 070128
- #if(LCD_TYPE==TFT_ORISE)
- TftSetWindow(bColStart,bRowStart+1,PROGRESS_MAX,1);
- #else
- TftSetWindowRot(bRowStart,OLED_MAX_ROW-bColStart-1,1,bPrograssMax); // WHH 070128
- #endif
- TFT_MEMORY_WRITE_START();
- for(wI=0; wI<((WORD)bValue); wI++)
- #if(!_PM_REC_)//WHH #13 301_070106
- OLED_WRITE_WDATA(OLED_WHITE) ;
- #else
- OLED_WRITE_WDATA(OLED_RED) ;
- #endif
- for(wI=0; wI<((bPrograssMax-(WORD)bValue)); wI++)
- OLED_WRITE_WDATA(OLED_BG_COLOR) ;
- OledDrawDirection(OLED_RAM_ACCESS_MODE_COLUMN_FIRST);
- OledCtrlDis();
- #if(!_PM_INIT_CHK_)
- SetSysSpeed(bKeepClk);
- #endif
- #endif
- }
- #endif