972平台终端Boot 启动流程
选择核心架构arm926,调用start.s 初始化ctr0后跳转对应main
arch/arm/cpu/arm926ejs/start.S
arch/arm/lib/crt0.S
然后跳转到对应的board_init,在board_init自定义添加液晶显示驱动和界面
board/nuvoton/nuc970/nuc970.c
#include
#define LCD_CD GPIO_PB15
#define LCD_RST GPIO_PB14
#define EL_DEV GPIO_PG4 //lcd 背光
#define ST75161_CTRL 0//写命令
#define ST75161_DATA 1//写数据
struct spi_slave *slavelcd;
int spi_lcd_cmd_write(struct spi_slave *sa, const u8 *cmd, size_t cmd_len,const void *data, size_t data_len)
{
unsigned long flags = SPI_XFER_BEGIN;
int ret = 0;
// if (data_len == 0)
// flags |= SPI_XFER_END;
gpio_request(LCD_CD, "LCD_CD");
if (cmd_len)
{
gpio_direction_output(LCD_CD,ST75161_CTRL);
ret = spi_xfer(sa, cmd_len * 8, cmd, NULL, flags);
if (ret)
debug("SF: Failed to send read command (%zu bytes): %d\n",cmd_len, ret);
}
if (data_len)
{
gpio_direction_output(LCD_CD,ST75161_DATA);
ret = spi_xfer(sa, data_len * 8, data, NULL, flags);
if (ret)
debug("SF: Failed to read %zu bytes of data: %d\n",
data_len, ret);
}
gpio_free(LCD_CD);
return ret;
}
void uc1608lcd_init_n(void){
int ret;
unsigned char initbuf[128],index = 0;
slavelcd = spi_setup_slave(0,1,5000000,SPI_MODE_0|SPI_CS_HIGH);
if (!slavelcd)
{
printf("SF: Failed to set up slave\n");
return ;
}
ret = spi_claim_bus(slavelcd);
if (ret) {
printf("SF: Failed to claim SPI bus: %d\n", ret);
spi_free_slave(slavelcd);
return ;
}
gpio_request(LCD_CD, "LCD_CD");
gpio_request(LCD_RST, "LCD_RST");
gpio_request(EL_DEV, "EL_DEV");
gpio_direction_output(LCD_CD,1);
gpio_free(LCD_CD);
gpio_direction_output(LCD_RST,0);
udelay(1000);
gpio_direction_output(LCD_RST,1);
udelay(1000);
initbuf[index++]=0xE2;
initbuf[index++]=0xAE; //display off
initbuf[index++]=0X27; //Set Temperature Compensation (11-0.25%)
initbuf[index++]=0X2B; //Set Power Control (Interal VLCD;Panel loading definition>13nF)
initbuf[index++]=0XEB; //Set LCD Bias ratio:3/11B
initbuf[index++]=0X81; //Set gain and potentiometer Mode
initbuf[index++]=0X76; //Program Gain:01;VLCD=(CV0+Cpm*pm)*(1+(T-25)*CT%)
initbuf[index++]=0x40; //*set scroll line LSB
initbuf[index++]=0x50; //*set scroll line MSB
initbuf[index++]=0X89; //Set RAM Address Control
initbuf[index++]=0x90; //*set fixed lines (double-byte command)
initbuf[index++]=0x00; //*default 0
initbuf[index++]=0xa4; //*set all-pixel-on
initbuf[index++]=0xa6; //*set inverse display
initbuf[index++]=0XC4; //Set LCD Maping Control (MY=1, MX=0)
initbuf[index++]=0xc8; //* set n-line inversion
initbuf[index++]=0x1d; //*default 1dh
initbuf[index++]=0XDE; //Set COM Scan Function
initbuf[index++]=0XC8; //Set N-Line Inversion
initbuf[index++]=0X18; //Set COM Scan Function
initbuf[index++]=0XA1; //Set Line Rate
// initbuf[index++]=0XD6; //Set Color Mode (64K)
initbuf[index++]=0XD5; //设置数据位数为12位 RRRR-GGGG-BBBB
initbuf[index++]=0XD1; //Set Color Pattern (RGB)
initbuf[index++]=0xF1; //*set com end (double-byte comman )
initbuf[index++]=159; //*default 159
initbuf[index++]=0X84; //Set Partial Display Off
//-----------------
initbuf[index++] = 0xf4;
initbuf[index++] = 0x25;
initbuf[index++] = 0xf6;
initbuf[index++] = 61;
initbuf[index++] = 0xf5;
initbuf[index++] = 160;
initbuf[index++] = 0xf7;
initbuf[index++] = 159;
//-------------
initbuf[index++]=0xAD;
initbuf[index++]=0x00;
spi_lcd_cmd_write(slavelcd,initbuf,index,NULL,0);
gpio_direction_output(EL_DEV,1);
printf("@@@@@@@@@@@@init uc1608 lcd ok len=%d\n",index);
}
void UC1608lcd_init_one(void){
int ret;
unsigned char flag[1],ii=0;
printf("this is uc1608lcd init one\n");
gpio_direction_output(EL_DEV,1);
slavelcd = spi_setup_slave(0,1,5000000,SPI_MODE_0|SPI_CS_HIGH);
if (!slavelcd)
{
printf("SF: Failed to set up slave\n");
return ;
}
ret = spi_claim_bus(slavelcd);
if (ret) {
printf("SF: Failed to claim SPI bus: %d\n", ret);
spi_free_slave(slavelcd);
return ;
}
gpio_request(LCD_CD, "LCD_CD");
gpio_request(LCD_RST, "LCD_RST");
gpio_request(EL_DEV, "EL_DEV");
gpio_direction_output(LCD_CD,1);
gpio_free(LCD_CD);
gpio_direction_output(LCD_RST,0);
udelay(100000);
gpio_direction_output(LCD_RST,1);
udelay(100000);
udelay(100000);
flag[0] = 0x25;//设置温度补偿系数-0.05%/C (0x24 0x25 0x26 0x27)
spi_lcd_cmd_write(slavelcd,flag,1,NULL,0);
flag[0] = 0x2b; //内部DC/DC
spi_lcd_cmd_write(slavelcd,flag,1,NULL,0);
flag[0] = 0xc4; //LCD映像 MY=1 MX=0 LC0=0
spi_lcd_cmd_write(slavelcd,flag,1,NULL,0);
flag[0] = 0xa1; //设置行扫描频率 FR=62.5Hz
spi_lcd_cmd_write(slavelcd,flag,1,NULL,0);
flag[0] = 0xd1; //彩色数据格式 R-G-B
spi_lcd_cmd_write(slavelcd,flag,1,NULL,0);
flag[0] = 0xd5; //设置数据位数为12位 RRRR-GGGG-BBBB
spi_lcd_cmd_write(slavelcd,flag,1,NULL,0);
flag[0] = 0xc8;
spi_lcd_cmd_write(slavelcd,flag,1,NULL,0);
// initbuf[index++] = 0x00;//设置M信号为帧翻转
flag[0] = 0x1f;//设置M信号为帧翻转
// flag[0] = 0x00;//设置M信号为帧翻转
spi_lcd_cmd_write(slavelcd,flag,1,NULL,0);
// flag[0] = 0xf1;//
//spi_lcd_cmd_write(slavelcd,flag,1,NULL,0);
// flag[0] = 159;//set duty1/160
//spi_lcd_cmd_write(slavelcd,flag,1,NULL,0);
flag[0] = 0xe9; //设置偏压比 1/10
spi_lcd_cmd_write(slavelcd,flag,1,NULL,0);
flag[0] = 0xa6; //正性显示
spi_lcd_cmd_write(slavelcd,flag,1,NULL,0);
flag[0] = 0xa4; //正常显示
spi_lcd_cmd_write(slavelcd,flag,1,NULL,0);
flag[0] = 0x81;
spi_lcd_cmd_write(slavelcd,flag,1,NULL,0);
flag[0] = 176;//设置对比度bf
spi_lcd_cmd_write(slavelcd,flag,1,NULL,0);
flag[0] = 0xd8; //设置扫描模式
spi_lcd_cmd_write(slavelcd,flag,1,NULL,0);
//----------------------------------------------
flag[0] = 0xf4;
spi_lcd_cmd_write(slavelcd,flag,1,NULL,0);
flag[0] = 0x25;
spi_lcd_cmd_write(slavelcd,flag,1,NULL,0);
flag[0] = 0xf6;
spi_lcd_cmd_write(slavelcd,flag,1,NULL,0);
flag[0] = 61;
spi_lcd_cmd_write(slavelcd,flag,1,NULL,0);
flag[0] = 0xf5;
spi_lcd_cmd_write(slavelcd,flag,1,NULL,0);
flag[0] = 160;
spi_lcd_cmd_write(slavelcd,flag,1,NULL,0);
flag[0] = 0xf7;
spi_lcd_cmd_write(slavelcd,flag,1,NULL,0);
flag[0] = 159;
spi_lcd_cmd_write(slavelcd,flag,1,NULL,0);
flag[0] = 0xad; //开显示
spi_lcd_cmd_write(slavelcd,flag,1,NULL,0);
//***************************************************
gpio_direction_output(EL_DEV,1);
//while(1){
//spi_lcd_cmd_write(slavelcd,flag,1,NULL,0);
// flag[0] = 0x81;
//spi_lcd_cmd_write(slavelcd,flag,1,NULL,0);
// flag[0] = 0x55;//设置对比度bf
//udelay(20000);
//printf("uc1608lcd ii=%d\n",ii);
//}
gpio_direction_output(EL_DEV,1);
}
void UC1608lcd_init(void){
int ret;
unsigned char initbuf[128],index = 0;
slavelcd = spi_setup_slave(0,1,2000000,SPI_MODE_0|SPI_CS_HIGH);
if (!slavelcd)
{
printf("SF: Failed to set up slave\n");
return ;
}
ret = spi_claim_bus(slavelcd);
if (ret) {
printf("SF: Failed to claim SPI bus: %d\n", ret);
spi_free_slave(slavelcd);
return ;
}
gpio_request(LCD_CD, "LCD_CD");
gpio_request(LCD_RST, "LCD_RST");
gpio_request(EL_DEV, "EL_DEV");
gpio_direction_output(LCD_CD,1);
gpio_free(LCD_CD);
gpio_direction_output(LCD_RST,0);
mdelay(10);
gpio_direction_output(LCD_RST,1);
mdelay(300);
//************************************************
initbuf[index++] = 0x25;//设置温度补偿系数-0.05%/C (0x24 0x25 0x26 0x27)
initbuf[index++] = 0x2b; //内部DC/DC
initbuf[index++] = 0xc4; //LCD映像 MY=1 MX=0 LC0=0
initbuf[index++] = 0xa1; //设置行扫描频率 FR=62.5Hz
initbuf[index++] = 0xd1; //彩色数据格式 R-G-B
initbuf[index++] = 0xd5; //设置数据位数为12位 RRRR-GGGG-BBBB
initbuf[index++] = 0xc8;
initbuf[index++] = 0x00;//设置M信号为帧翻转
// initbuf[index++] = 0x1f;//设置M信号为帧翻转
// initbuf[index++] = 0xf1;//
// initbuf[index++] = 159;//set duty1/160
initbuf[index++] = 0xe9; //设置偏压比 1/10
initbuf[index++] = 0xa6; //正性显示
initbuf[index++] = 0xa4; //正常显示
initbuf[index++] = 0x81;
initbuf[index++] = 175;//设置对比度bf
initbuf[index++] = 0xd8; //设置扫描模式
// initbuf[index++] = 0xad; //开显示
//----------------------------------------------
initbuf[index++] = 0xf4;
initbuf[index++] = 0x25;
initbuf[index++] = 0xf6;
initbuf[index++] = 0x5a;
initbuf[index++] = 0xf5;
initbuf[index++] = 0;
initbuf[index++] = 0xf7;
initbuf[index++] = 0x9f;
//***************************************************
initbuf[index++] = 0xad; //开显示
spi_lcd_cmd_write(slavelcd,initbuf,index,NULL,0);
mdelay(10);
gpio_direction_output(EL_DEV,1);
// printf("==>init uc1608 lcd ok len=%d\n",index);
mdelay(10);
}
#if 0
void ST75161lcd_init(void){
int ret;
unsigned char vop_num=0x29;
unsigned char xxx[20];
slavelcd = spi_setup_slave(0,1,1600000,SPI_MODE_0|SPI_CS_HIGH);
if (!slavelcd)
{
printf("SF: Failed to set up slave\n");
return ;
}
ret = spi_claim_bus(slavelcd);
if (ret) {
printf("SF: Failed to claim SPI bus: %d\n", ret);
spi_free_slave(slavelcd);
return ;
}
gpio_request(LCD_CD, "LCD_CD");
gpio_request(LCD_RST, "LCD_RST");
gpio_request(EL_DEV, "EL_DEV");
gpio_direction_output(LCD_CD,1);
gpio_direction_output(LCD_RST,0);
udelay(1000);
gpio_direction_output(LCD_RST,1);
xxx[0]=0x31;//EXT=1
xxx[1]=0xd7;//Disable Auto Read
spi_lcd_cmd_write(slavelcd,xxx,2,NULL,0);
xxx[0]=0x9f;
spi_lcd_cmd_write(slavelcd,NULL,0,xxx,1);
xxx[0]=0xe0;
spi_lcd_cmd_write(slavelcd,xxx,1,NULL,0);
xxx[0]=0x00;
spi_lcd_cmd_write(slavelcd,NULL,0,xxx,1);
udelay(10000);
xxx[0]=0xe3;
spi_lcd_cmd_write(slavelcd,xxx,1,NULL,0);
udelay(20000);
xxx[0]=0xe1;// OTP Control Out
xxx[1]=0x30;// EXT=0
xxx[2]=0x94;// Sleep out
xxx[3]=0xae;// Display off
xxx[4]=0xd1;
spi_lcd_cmd_write(slavelcd,xxx,5,NULL,0);
udelay(50000);
xxx[0]=0x20;
spi_lcd_cmd_write(slavelcd,xxx,1,NULL,0);
xxx[0]=0xb;
spi_lcd_cmd_write(slavelcd,NULL,0,xxx,1);
udelay(100000);
xxx[0]=0x81;
spi_lcd_cmd_write(slavelcd,xxx,1,NULL,0);
xxx[0]=vop_num;
spi_lcd_cmd_write(slavelcd,NULL,0,xxx,1);
xxx[0]=4;
spi_lcd_cmd_write(slavelcd,NULL,0,xxx,1);
xxx[0]=0x31;
xxx[1]=0x20;
spi_lcd_cmd_write(slavelcd,xxx,2,NULL,0);
xxx[0]=0x00;
xxx[1]=0x00;
xxx[2]=0x00;
xxx[3]=0x17; //Light Gray Level Setting
xxx[4]=0x17; //Light Gray Level Setting
xxx[5]=0x17; //Light Gray Level Setting
xxx[6]=0x00;
xxx[7]=0x00;
xxx[8]=0x1d; //Dark Gray Level Setting
xxx[9]=0x00;
xxx[10]=0x00;
xxx[11]=0x1d; //Dark Gray Level Setting
xxx[12]=0x1d; //Dark Gray Level Setting
xxx[13]=0x1d; //Dark Gray Level Setting
xxx[14]=0x00;
xxx[15]=0x00;
spi_lcd_cmd_write(slavelcd,NULL,0,xxx,16);
xxx[0] = 0x31;
xxx[1] = 0x32;
spi_lcd_cmd_write(slavelcd,xxx,2,NULL,0);
xxx[0] = 0;
xxx[1] = 1;
xxx[2] = 3;
spi_lcd_cmd_write(slavelcd,NULL,0,xxx,3);
xxx[0] = 0x51;
spi_lcd_cmd_write(slavelcd,xxx,1,NULL,0);// Booster Level x10
xxx[0] = 0xfb;
spi_lcd_cmd_write(slavelcd,NULL,0,xxx,1);
xxx[0] = 0x30;
spi_lcd_cmd_write(slavelcd,xxx,1,NULL,0);// EXT=0
xxx[0] = 0xf0;
spi_lcd_cmd_write(slavelcd,xxx,1,NULL,0);// Display Mode
xxx[0] = 0x10;
spi_lcd_cmd_write(slavelcd,NULL,0,xxx,1);// 10H=Monochrome Mode,11H=4Gray
xxx[0] = 0xc;
spi_lcd_cmd_write(slavelcd,xxx,1,NULL,0);
xxx[0] = 0xca;
spi_lcd_cmd_write(slavelcd,xxx,1,NULL,0);// Display Control
xxx[0]= 0;
xxx[1]= 0x9f;
xxx[2]= 0;
spi_lcd_cmd_write(slavelcd,NULL,0,xxx,3);
xxx[0] = 0xbc;
spi_lcd_cmd_write(slavelcd,xxx,1,NULL,0);// Data Scan Direction
xxx[0] = 0x00;
spi_lcd_cmd_write(slavelcd,NULL,0,xxx,1);
xxx[0]=0xa6;
xxx[1]=0x31;
xxx[2]=0x40;
xxx[3]=0xf0;
spi_lcd_cmd_write(slavelcd,xxx,4,NULL,0);
xxx[0]=2;
xxx[1]=3;
xxx[2]=0x12;
xxx[3]=0x1c;
spi_lcd_cmd_write(slavelcd,NULL,0,xxx,4);
xxx[0] = 0xf2;
spi_lcd_cmd_write(slavelcd,xxx,1,NULL,0);// Temperature Range
xxx[0]=9;
xxx[1]=0x14;
xxx[2]=0x52;
spi_lcd_cmd_write(slavelcd,NULL,0,xxx,3);
xxx[0] = 0xf4;
spi_lcd_cmd_write(slavelcd,xxx,1,NULL,0);// Temperature Gradient Compensation
xxx[0]=0;
xxx[1]=0;
xxx[2]=0;
xxx[3]=0;
xxx[4]=0x10;
xxx[5]=0x53;
xxx[6]=0x56;
xxx[7]=0x53;
spi_lcd_cmd_write(slavelcd,NULL,0,xxx,8);
xxx[0]=0x31;
xxx[1]=0x40;
xxx[2]=0x30;
xxx[3]=0x15;
spi_lcd_cmd_write(slavelcd,xxx,4,NULL,0);
xxx[0] = 0x00;
spi_lcd_cmd_write(slavelcd,NULL,0,xxx,1);//Starting column address
xxx[0] = 0x9f;
spi_lcd_cmd_write(slavelcd,NULL,0,xxx,1);//Ending column address
xxx[0] = 0x75;
spi_lcd_cmd_write(slavelcd,xxx,1,NULL,0);//Row Address Setting
xxx[0] = 0x00;
spi_lcd_cmd_write(slavelcd,NULL,0,xxx,1);//Starting page address
xxx[0] = 0x27;
spi_lcd_cmd_write(slavelcd,NULL,0,xxx,1);//Ending page address
xxx[0] = 0xaf;
spi_lcd_cmd_write(slavelcd,xxx,1,NULL,0);
gpio_direction_output(EL_DEV,1);
// printf("@@@@@@@@@@@@init lcd ok\n");
}
#endif
unsigned char LCDBuffer1[3200]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x3C,0x80,0x83,0x03,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0xE0,0x7F,0x80,0x03,0x07,0x00,0xE0,0x00,0x00,0x00,0x07,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xFF,0x03,0xC0,0x01,0xC7,0xC0,0xE0,
0x30,0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x00,0xC0,
0xF9,0xFF,0xC1,0xFF,0x7F,0x00,0x18,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x78,0x00,0xE0,0x1C,0x07,0xC0,0x01,0x70,0xF8,0x3F,0x07,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x1C,0x1C,0x60,0x9E,0x07,0xC0,0x01,0x70,0x10,0x00,0xC7,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x3E,0x70,0x8E,0x09,0xC0,0x01,
0x70,0x00,0xE0,0xFF,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xFF,0x07,0xF8,
0xC7,0x38,0xC0,0x01,0x70,0x00,0x30,0xE7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x80,0xFF,0x03,0xB8,0x63,0xF0,0xC0,0xFF,0x7F,0xF8,0x7F,0xE7,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0xF1,0x06,0x80,0xF1,0xFF,0xC0,0x01,0x70,0x80,0x03,0xE7,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x1C,0xC0,0xF0,0xDF,0xC0,0x01,
0x00,0x80,0x03,0xE7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x78,0xE0,
0xF0,0xDD,0xC0,0x07,0x30,0xC0,0x01,0xE7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xC0,0xFF,0xFF,0xF8,0xCF,0x1D,0xC0,0xFF,0x7F,0xC0,0x0E,0xE7,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0xC0,0xFF,0xE0,0xF0,0xC0,0x1D,0xC0,0x0F,0x30,0xE0,0x1C,0xE3,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE4,0x60,0x30,0xC0,0x1D,0xC0,0x0F,
0x30,0x60,0x98,0xE3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xEE,0x0F,0x00,
0xD8,0x1D,0xC0,0x0F,0x30,0x30,0xB8,0xE3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0xEF,0x3C,0xC0,0xCF,0x9D,0xE1,0x0E,0x30,0xF8,0xFF,0xE1,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x80,0xE7,0x78,0xF8,0xE1,0x9C,0xE1,0x0E,0x30,0xF8,0xF0,0xE0,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xE1,0xF0,0x78,0xE0,0xDC,0x61,0x0E,
0x30,0x18,0xE0,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xFC,0xE0,0x10,
0x70,0xFC,0x71,0xFE,0x3F,0x00,0x70,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x38,0xF8,0xC0,0x00,0x3C,0xFC,0x31,0x0E,0x30,0x00,0x38,0x7C,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x00,0x0E,0x00,0x18,0x0E,0x30,0x00,0x0E,0x38,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x02,0x00,0x02,0x00,0x07,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC8,0x1F,
0x58,0x12,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x08,0x02,0x87,0x0A,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x1F,0x04,0x02,0x02,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0xC4,0x1F,0xFE,0x0F,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xEE,0x3F,
0x5F,0x10,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x08,0x00,0x44,0x10,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0xC8,0x1F,0xCC,0x1F,0xFA,0x07,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x10,0x56,0x10,0x0A,0x04,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC8,0x1F,
0x46,0x10,0x0A,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x68,0x10,0xC5,0x1F,0x09,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0xD8,0x1F,0x44,0x10,0x09,0xC4,0xC0,0xC0,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x10,0x44,0x90,0xF8,0xC7,
0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x1C,
0x44,0x1C,0x08,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};
void display_UC1608(void){
unsigned char buffer[3200*4+160];
// unsigned char buffer[13440];
int i,ii,count = 0;
unsigned char j;
unsigned int tmp;
buffer[0]=0x05;
buffer[1]=0x12;
buffer[2]=0x60;
buffer[3]=0x70;
spi_lcd_cmd_write(slavelcd,buffer,4,NULL,0);
memset(buffer,0,sizeof(buffer));
for(ii=0;ii<160;ii++){
for(i=0;i<20;i++){
tmp = 0;
for(j=0;j<4;j++){
if((LCDBuffer1[i+ii*20]>>(j*2))&0x01)
tmp = tmp|(0x000000f0<<(j*8));
if((LCDBuffer1[i+ii*20]>>(j*2))&0x02)
tmp = tmp|(0x0000000f<<(j*8));
}
memcpy(&buffer[count],(unsigned char *)&tmp,4);
count += 4;
}
count+=1;//add colum addr
}
spi_lcd_cmd_write(slavelcd,NULL,0,buffer,sizeof(buffer));
// printf("@@@@@@@@@display uc1608 111\n");
}
#if 0
void display_ST75161(void)
{
//int ColX,RowY,i;
//unsigned char xx;
unsigned char temp[160];
temp[0]=0x30;
spi_lcd_cmd_write(slavelcd,temp,1,NULL,0);
temp[0]=0x15;
spi_lcd_cmd_write(slavelcd,temp,1,NULL,0);//Column Address Setting
temp[0]=0x0;
spi_lcd_cmd_write(slavelcd,NULL,0,temp,1);//Starting column address
temp[0]=0x9f;
spi_lcd_cmd_write(slavelcd,NULL,0,temp,1);//Ending column address
temp[0]=0x75;
spi_lcd_cmd_write(slavelcd,temp,1,NULL,0);//Row Address Setting
temp[0]=0x0;
spi_lcd_cmd_write(slavelcd,NULL,0,temp,1);//Starting page address
temp[0]=0x13;
spi_lcd_cmd_write(slavelcd,NULL,0,temp,1);//Ending page address
temp[0]=0x5c;
spi_lcd_cmd_write(slavelcd,temp,1,NULL,0);
/* for(RowY=0;RowY<20;RowY++){
for(ColX=0;ColX<160;ColX++){
xx=0;
for(i=0;i<8;i++){
if(LCDBuffer[ColX+(8*RowY+i)*160]==0xff)
xx |=(1<