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

📄 hx8824.c

📁 一个LCD TV的源程序, 用的是realtek的IC
💻 C
📖 第 1 页 / 共 4 页
字号:
    I2CWriteByte(HX8824_ADDR, 0x23, 0x1F);
    I2CWriteByte(HX8824_ADDR, 0x24, 0x00);
    I2CWriteByte(HX8824_ADDR, 0x25, 0x00);
    I2CWriteByte(HX8824_ADDR, 0x24, 0x00);
    I2CWriteByte(HX8824_ADDR, 0x25, 0x04);
    I2CWriteByte(HX8824_ADDR, 0xA0, 0xF9);
    I2CWriteByte(HX8824_ADDR, 0xA1, 0x00);
    I2CWriteByte(HX8824_ADDR, 0xA2, 0x00);
    I2CWriteByte(HX8824_ADDR, 0x00, 0x80);
    I2CWriteByte(HX8824_ADDR, 0x01, 0x02);
    I2CWriteByte(HX8824_ADDR, 0x02, 0xE0);
    I2CWriteByte(HX8824_ADDR, 0x03, 0x01);
    I2CWriteByte(HX8824_ADDR, 0x90, 0x5A);
    I2CWriteByte(HX8824_ADDR, 0x91, 0x03);
    I2CWriteByte(HX8824_ADDR, 0x92, 0x3F);
    I2CWriteByte(HX8824_ADDR, 0x93, 0x00);
    I2CWriteByte(HX8824_ADDR, 0x94, 0x7A);
    I2CWriteByte(HX8824_ADDR, 0x95, 0x00);
    I2CWriteByte(HX8824_ADDR, 0x96, 0x40);
    I2CWriteByte(HX8824_ADDR, 0x97, 0x01);
    I2CWriteByte(HX8824_ADDR, 0x98, 0x07);
    I2CWriteByte(HX8824_ADDR, 0x99, 0x01);
    I2CWriteByte(HX8824_ADDR, 0x9A, 0x03);
    I2CWriteByte(HX8824_ADDR, 0x9B, 0x00);
    I2CWriteByte(HX8824_ADDR, 0x9C, 0x12);
    I2CWriteByte(HX8824_ADDR, 0x9D, 0x00);
    I2CWriteByte(HX8824_ADDR, 0x9E, 0xF0);
    I2CWriteByte(HX8824_ADDR, 0x9F, 0x00);
    //*****************  PLL ********************************************************
    I2CWriteByte(HX8824_ADDR, 0xD0, 0x1C);  // P1
    I2CWriteByte(HX8824_ADDR, 0xD1, 0x0E);  // P2
    I2CWriteByte(HX8824_ADDR, 0xD2, 0x07);  // N
    I2CWriteByte(HX8824_ADDR, 0xD3, 0x04);  // M: 261 -1
    I2CWriteByte(HX8824_ADDR, 0xD4, 0x01);  // M
#endif
//*************************************************************************************
#if mode7224_8060
    bVideo = 1;
    S1 = 0;
    S2 = 1;
    Mode = 4;
    I2CWriteByte(HX8824_ADDR, 0x10, 0x1C);   // input format select
    //I2CWriteByte(HX8824_ADDR, 0x11, 0x0C);  // 656
    I2CWriteByte(HX8824_ADDR, 0x11, 0x0F);  //601
    I2CWriteByte(HX8824_ADDR, 0x20, 0x7A);
    I2CWriteByte(HX8824_ADDR, 0x21, 0x06);
    I2CWriteByte(HX8824_ADDR, 0x22, 0xFF);
    I2CWriteByte(HX8824_ADDR, 0x23, 0x0F);
    I2CWriteByte(HX8824_ADDR, 0x20, 0x65);
    I2CWriteByte(HX8824_ADDR, 0x21, 0x0E);
    I2CWriteByte(HX8824_ADDR, 0x22, 0xFF);
    I2CWriteByte(HX8824_ADDR, 0x23, 0x1F);
    I2CWriteByte(HX8824_ADDR, 0x24, 0x00);
    I2CWriteByte(HX8824_ADDR, 0x25, 0x00);
    I2CWriteByte(HX8824_ADDR, 0x24, 0x00);
    I2CWriteByte(HX8824_ADDR, 0x25, 0x04);
    I2CWriteByte(HX8824_ADDR, 0xA0, 0xeb);
    I2CWriteByte(HX8824_ADDR, 0xA1, 0x05);
    I2CWriteByte(HX8824_ADDR, 0xA2, 0x00);
    I2CWriteByte(HX8824_ADDR, 0x00, 0xd0);
    I2CWriteByte(HX8824_ADDR, 0x01, 0x02);
    I2CWriteByte(HX8824_ADDR, 0x02, 0xF3);
    I2CWriteByte(HX8824_ADDR, 0x03, 0x00);
    I2CWriteByte(HX8824_ADDR, 0x90, 0x03);
    I2CWriteByte(HX8824_ADDR, 0x91, 0x04);
    I2CWriteByte(HX8824_ADDR, 0x92, 0x48);
    I2CWriteByte(HX8824_ADDR, 0x93, 0x00);
    I2CWriteByte(HX8824_ADDR, 0x94, 0x90);
    I2CWriteByte(HX8824_ADDR, 0x95, 0x00);
    I2CWriteByte(HX8824_ADDR, 0x96, 0x20);
    I2CWriteByte(HX8824_ADDR, 0x97, 0x03);
    I2CWriteByte(HX8824_ADDR, 0x98, 0x92);
    I2CWriteByte(HX8824_ADDR, 0x99, 0x02);
    I2CWriteByte(HX8824_ADDR, 0x9A, 0x13);
    I2CWriteByte(HX8824_ADDR, 0x9B, 0x00);
    I2CWriteByte(HX8824_ADDR, 0x9C, 0x26);
    I2CWriteByte(HX8824_ADDR, 0x9D, 0x00);
    I2CWriteByte(HX8824_ADDR, 0x9E, 0x58);
    I2CWriteByte(HX8824_ADDR, 0x9F, 0x02);
    //*****************  PLL ********************************************************
    I2CWriteByte(HX8824_ADDR, 0xD0, 0x08);  // P1
    I2CWriteByte(HX8824_ADDR, 0xD1, 0x09);  // P2
    I2CWriteByte(HX8824_ADDR, 0xD2, 0x09);  // N
    I2CWriteByte(HX8824_ADDR, 0xD3, 0x2B);  // M: 300 -1
    I2CWriteByte(HX8824_ADDR, 0xD4, 0x01);  // M
    //I2CWriteByte(SAA7111_ADDR, 0x08, 0xC8);
#endif
//*************************************************************************************
#if mode7224_8048
    Mode = 6;
    bVideo = 1;
    S1 = 0;
    S2 = 1;
    Mode = 5;
    // Select Input Mux, For VIDEO Input
	I2CWriteByte(HX8824_ADDR, 0x10, 0x1C);  // Use external HS,VS,DE; port A
    //I2CWriteByte(HX8824_ADDR, 0x11, 0x0C);  // 656
    I2CWriteByte(HX8824_ADDR, 0x11, 0x0F);  //656
	//I2CWriteByte(HX8824_ADDR, 0x11, 0x0B);  // CCIR601, VS and HS are postive

    // Set scaling ratio

	I2CWriteByte(HX8824_ADDR, 0x20, 0x19);
	I2CWriteByte(HX8824_ADDR, 0x21, 0x08);
	I2CWriteByte(HX8824_ADDR, 0x22, 0xFF);
	I2CWriteByte(HX8824_ADDR, 0x23, 0x0F);
	I2CWriteByte(HX8824_ADDR, 0x20, 0x65);
	I2CWriteByte(HX8824_ADDR, 0x21, 0x0E);
	I2CWriteByte(HX8824_ADDR, 0x22, 0xFF);
	I2CWriteByte(HX8824_ADDR, 0x23, 0x1F);

//   DTV ratio
/*	I2CWriteByte(HX8824_ADDR, 0x20, 0x00);
	I2CWriteByte(HX8824_ADDR, 0x21, 0x08);
	I2CWriteByte(HX8824_ADDR, 0x22, 0xFF);
	I2CWriteByte(HX8824_ADDR, 0x23, 0x0F);
	I2CWriteByte(HX8824_ADDR, 0x20, 0x00);
	I2CWriteByte(HX8824_ADDR, 0x21, 0x0E);
	I2CWriteByte(HX8824_ADDR, 0x22, 0xFF);
	I2CWriteByte(HX8824_ADDR, 0x23, 0x1F);
  */
    // Set Border
	I2CWriteByte(HX8824_ADDR, 0x24, 0x00);
	I2CWriteByte(HX8824_ADDR, 0x25, 0x00);
	I2CWriteByte(HX8824_ADDR, 0x24, 0x00);
	I2CWriteByte(HX8824_ADDR, 0x25, 0x04);

    // Set VS reset
	//I2CWriteByte(HX8824_ADDR, 0xA0, 0x34); //B1
	//I2CWriteByte(HX8824_ADDR, 0xA1, 0x1C); //11
	//I2CWriteByte(HX8824_ADDR, 0xA2, 0x00);
	//I2CWriteByte(HX8824_ADDR, 0xA0, 0x34); //B1  ok for PVI
	//I2CWriteByte(HX8824_ADDR, 0xA1, 0x09); //11
	//I2CWriteByte(HX8824_ADDR, 0xA2, 0x00);	   
	I2CWriteByte(HX8824_ADDR, 0xA0, 0x36); //B1	  ok for hx8819
	I2CWriteByte(HX8824_ADDR, 0xA1, 0x06); //11
	I2CWriteByte(HX8824_ADDR, 0xA2, 0x00);

    // Set input timing
	I2CWriteByte(HX8824_ADDR, 0x00, 0xD0);
	I2CWriteByte(HX8824_ADDR, 0x01, 0x02);
	I2CWriteByte(HX8824_ADDR, 0x02, 0xF3);
	I2CWriteByte(HX8824_ADDR, 0x03, 0x00);
	//I2CWriteByte(HX8824_ADDR, 0x14, 0x00);
	//I2CWriteByte(HX8824_ADDR, 0x15, 0x00);
	//I2CWriteByte(HX8824_ADDR, 0x16, 0x00);
	//I2CWriteByte(HX8824_ADDR, 0x17, 0x00);

    // Set output timing
	//I2CWriteByte(HX8824_ADDR, 0x90, 0x2F);  // for PVI
	//I2CWriteByte(HX8824_ADDR, 0x91, 0x04);
	//I2CWriteByte(HX8824_ADDR, 0x92, 0x35);
	//I2CWriteByte(HX8824_ADDR, 0x93, 0x00);	 
	I2CWriteByte(HX8824_ADDR, 0x90, 0xF5);	// for hx8819 broken IC		1013
	I2CWriteByte(HX8824_ADDR, 0x91, 0x03);
	I2CWriteByte(HX8824_ADDR, 0x92, 0x30);
	I2CWriteByte(HX8824_ADDR, 0x93, 0x00);
	I2CWriteByte(HX8824_ADDR, 0x94, 0x58);
	I2CWriteByte(HX8824_ADDR, 0x95, 0x00);
	I2CWriteByte(HX8824_ADDR, 0x96, 0x20);
	I2CWriteByte(HX8824_ADDR, 0x97, 0x03);
	I2CWriteByte(HX8824_ADDR, 0x98, 0x0D);   // 
	I2CWriteByte(HX8824_ADDR, 0x99, 0x02);
	I2CWriteByte(HX8824_ADDR, 0x9A, 0x03);
	I2CWriteByte(HX8824_ADDR, 0x9B, 0x00);
	I2CWriteByte(HX8824_ADDR, 0x9C, 0x1D);
	I2CWriteByte(HX8824_ADDR, 0x9D, 0x00);
	I2CWriteByte(HX8824_ADDR, 0x9E, 0xE0);
	I2CWriteByte(HX8824_ADDR, 0x9F, 0x01);
    //*****************  PLL ********************************************************
    //I2CWriteByte(HX8824_ADDR, 0xD0, 0x08);  // P1
    //I2CWriteByte(HX8824_ADDR, 0xD1, 0x09);  // P2
    //I2CWriteByte(HX8824_ADDR, 0xD2, 0x07);  // N
    //I2CWriteByte(HX8824_ADDR, 0xD3, 0xC7);  // M: 200 -1
    //I2CWriteByte(HX8824_ADDR, 0xD4, 0x00);  // M
    //*****************  PLL **********************for hx8819 broken IC
    I2CWriteByte(HX8824_ADDR, 0xD0, 0x0B);  // P1
    I2CWriteByte(HX8824_ADDR, 0xD1, 0x0C);  // P2
    I2CWriteByte(HX8824_ADDR, 0xD2, 0x09);  // N
    I2CWriteByte(HX8824_ADDR, 0xD3, 0x3A);  // M: 200 -1
    I2CWriteByte(HX8824_ADDR, 0xD4, 0x01);  // M
#endif
//*****************************************************************************************
#if mode7224_6448
    bVideo = 1;
    S1 = 0;
    S2 = 1;
    Mode = 6;
    I2CWriteByte(HX8824_ADDR, 0x10, 0x1C);   // USE EXTERNAL SYNC AND DE
    //I2CWriteByte(HX8824_ADDR, 0x11, 0x0C);  // 656
    I2CWriteByte(HX8824_ADDR, 0x11, 0x0F);  //601
    I2CWriteByte(HX8824_ADDR, 0x20, 0x19);
    I2CWriteByte(HX8824_ADDR, 0x21, 0x08);
    I2CWriteByte(HX8824_ADDR, 0x22, 0xFF);
    I2CWriteByte(HX8824_ADDR, 0x23, 0x0F);
    I2CWriteByte(HX8824_ADDR, 0x24, 0x00);
    I2CWriteByte(HX8824_ADDR, 0x25, 0x00);
    I2CWriteByte(HX8824_ADDR, 0x24, 0x00);
    I2CWriteByte(HX8824_ADDR, 0x25, 0x04);
    I2CWriteByte(HX8824_ADDR, 0x20, 0x01);
    I2CWriteByte(HX8824_ADDR, 0x21, 0x12);
    I2CWriteByte(HX8824_ADDR, 0x22, 0xFF);
    I2CWriteByte(HX8824_ADDR, 0x23, 0x1F);
    //I2CWriteByte(HX8824_ADDR,0x27, 0x0A);   // delay
    I2CWriteByte(HX8824_ADDR, 0xA0, 0x50);
    I2CWriteByte(HX8824_ADDR, 0xA1, 0x07);
    I2CWriteByte(HX8824_ADDR, 0xA2, 0x00);
    I2CWriteByte(HX8824_ADDR, 0x00, 0xD0);
    I2CWriteByte(HX8824_ADDR, 0x01, 0x02);
    I2CWriteByte(HX8824_ADDR, 0x02, 0xF3);
    I2CWriteByte(HX8824_ADDR, 0x03, 0x00);
    I2CWriteByte(HX8824_ADDR, 0x90, 0x2A);
    I2CWriteByte(HX8824_ADDR, 0x91, 0x03);
    I2CWriteByte(HX8824_ADDR, 0x92, 0x60);
    I2CWriteByte(HX8824_ADDR, 0x93, 0x00);
    I2CWriteByte(HX8824_ADDR, 0x94, 0x90);
    I2CWriteByte(HX8824_ADDR, 0x95, 0x00);
    I2CWriteByte(HX8824_ADDR, 0x96, 0x80);
    I2CWriteByte(HX8824_ADDR, 0x97, 0x02);
    I2CWriteByte(HX8824_ADDR, 0x98, 0x0D);
    I2CWriteByte(HX8824_ADDR, 0x99, 0x02);
    I2CWriteByte(HX8824_ADDR, 0x9A, 0x02);
    I2CWriteByte(HX8824_ADDR, 0x9B, 0x00);
    I2CWriteByte(HX8824_ADDR, 0x9C, 0x1D);
    I2CWriteByte(HX8824_ADDR, 0x9D, 0x00);
    I2CWriteByte(HX8824_ADDR, 0x9E, 0xE0);
    I2CWriteByte(HX8824_ADDR, 0x9F, 0x01);
    //I2CWriteByte(HX8824_ADDR, 0x14, 0x00);    // position
    //I2CWriteByte(HX8824_ADDR, 0x15, 0x00);
    //I2CWriteByte(HX8824_ADDR, 0x16, 0x00);
    //I2CWriteByte(HX8824_ADDR, 0x17, 0x00);
    //*****************  PLL ********************************************************
    I2CWriteByte(HX8824_ADDR, 0xD0, 0x08);  // P1
    I2CWriteByte(HX8824_ADDR, 0xD1, 0x07);  // P2
    I2CWriteByte(HX8824_ADDR, 0xD2, 0x0C);  // N
    I2CWriteByte(HX8824_ADDR, 0xD3, 0xF5);  // M: 246 -1
    I2CWriteByte(HX8824_ADDR, 0xD4, 0x00);  // M
    //I2CWriteByte(SAA7111_ADDR, 0x08, 0xC8);    //  SAA7111 NTSC OUTPUT
#endif
//********************************************************************************************
#if mode7224_3224
    bVideo = 1;
    S1 = 0;
    S2 = 1;
    Mode = 7;
    I2CWriteByte(HX8824_ADDR, 0x10, 0x1C);   // input format select
    I2CWriteByte(HX8824_ADDR, 0x11, 0x0F);  // 656
    //I2CWriteByte(HX8824_ADDR, 0x11, 0x0B);  //601
    //I2CWriteByte(HX8824_ADDR, 0x14, 0x00);
    //I2CWriteByte(HX8824_ADDR, 0x15, 0x00);
    //I2CWriteByte(HX8824_ADDR, 0x16, 0x00);
    //I2CWriteByte(HX8824_ADDR, 0x17, 0x00);
    I2CWriteByte(HX8824_ADDR, 0x20, 0x44);
    I2CWriteByte(HX8824_ADDR, 0x21, 0x10);
    I2CWriteByte(HX8824_ADDR, 0x22, 0xFF);
    I2CWriteByte(HX8824_ADDR, 0x23, 0x0F);
    I2CWriteByte(HX8824_ADDR, 0x20, 0x30);   //0x10
    I2CWriteByte(HX8824_ADDR, 0x21, 0x24);
    I2CWriteByte(HX8824_ADDR, 0x22, 0xFF);
    I2CWriteByte(HX8824_ADDR, 0x23, 0x1F);
    I2CWriteByte(HX8824_ADDR, 0x24, 0x00);
    I2CWriteByte(HX8824_ADDR, 0x25, 0x00);
    I2CWriteByte(HX8824_ADDR, 0x24, 0x00);
    I2CWriteByte(HX8824_ADDR, 0x25, 0x04);
    I2CWriteByte(HX8824_ADDR, 0x26, 0x00);
    I2CWriteByte(HX8824_ADDR, 0x29, 0x01);  //
    I2CWriteByte(HX8824_ADDR, 0xA0, 0x40);  // 43
    I2CWriteByte(HX8824_ADDR, 0xA1, 0x01);  // 05
    I2CWriteByte(HX8824_ADDR, 0xA2, 0x00);
    I2CWriteByte(HX8824_ADDR, 0x00, 0xD0);
    I2CWriteByte(HX8824_ADDR, 0x01, 0x02);
    I2CWriteByte(HX8824_ADDR, 0x02, 0xF3);
    I2CWriteByte(HX8824_ADDR, 0x03, 0x00);
    I2CWriteByte(HX8824_ADDR, 0x90, 0xA0);
    I2CWriteByte(HX8824_ADDR, 0x91, 0x01);
    I2CWriteByte(HX8824_ADDR, 0x92, 0x1E);
    I2CWriteByte(HX8824_ADDR, 0x93, 0x00);
    I2CWriteByte(HX8824_ADDR, 0x94, 0x44);
    I2CWriteByte(HX8824_ADDR, 0x95, 0x00);
    I2CWriteByte(HX8824_ADDR, 0x96, 0x40);

⌨️ 快捷键说明

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