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

📄 scaler.c

📁 NOVATEK公司的LCD_CONTROLLER源代码 液晶显示器驱动板源代码NT68521
💻 C
📖 第 1 页 / 共 3 页
字号:
#include "Scaler.H"
#include "MCU.H"
#include "UserAdj.H"
#include "MyDef.H"
#include "F63REG.H"
#include "IIC.H"
#include "stdio.h"
#include "PANEL.H"
#include "RAM.H"
#include "sRGB.H"
#include "OSD.H"

#if 0
	#define DT63 0x80
#else
	#define DT63 0x00
#endif
//
#if PanelDepth == 6
	#define DisplayColorDepth 0xff
#else
	#define DisplayColorDepth 0x00
#endif

#if PanelTwoPixelPerClk == 1
	#define DisplayBusWidth 0x00
#else
	#define DisplayBusWidth 0xff
#endif

#if PanelSync_DE == 1
	#define DisplaySyncMode 0xff
#else
	#define DisplaySyncMode 0x00
#endif
#define DisplayControl (0x68 | (DisplayColorDepth & BIT_2) | (DisplayBusWidth & BIT_1) | (DisplaySyncMode & BIT_0))

#define DT5E (unsigned char)PanelPadDrive
#define DT5F (unsigned char)(PanelPadDrive >> 8)
#define DT61 ((Panel_Invert_DVS & BIT_0) | (Panel_Invert_DHS & BIT_1) | (Panel_Invert_DCLK & BIT_2) | (Panel_Invert_DEN & BIT_3))

code unsigned short H_ActiveTab[]={
//	640,720,640,800,832,1024,1152,1280,1280,1600,1280,1280,1280,848,1152,720
	1280,720,1280,800,832,1024,1152,1280,1280,1600,1280,848,1152,720
};
code unsigned short V_ActiveTab[]={
	350,400,480,600,624,768,864,960,1024,1200,720,480,870,576
};

#if PANEL == CPT_CLAA150XG08
code unsigned char TCON_Tab[]={
//	  0    1    2    3    4    5    6    7    8    9    a
#if 1
	0x00,0x62,0x22,0x0f,0x08,0x62,0x01,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x01,0x00,0x01,0x00,0x07,0x04,0x0f,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,
	0x01,0x00,0x01,0x00,0x81,0x02,0x81,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x01,0x00,0x02,0x00,0x02,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,
	0x01,0x00,0x01,0x00,0xe0,0x03,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,
	0x01,0x00,0x01,0x00,0x00,0x04,0x01,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,
#else
	0x00,0x62,0x22,0x0f,0x08,0x62,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x01,0x00,0x01,0x00,0x04,0x04,0x48,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,
	0x01,0x00,0x02,0x03,0xa0,0x03,0xa0,0x03,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x01,0x00,0x02,0x00,0x8c,0x01,0x8a,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,
	0x01,0x00,0x01,0x00,0xc0,0x03,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,
	0x01,0x00,0x01,0x00,0xe0,0x03,0x01,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,
#endif
};
#endif
#if PANEL == QD170ER01
code unsigned char TCON_Tab[]={
//	  0    1    2    3    4    5    6    7    8    9    a
	0x00,0x60,0x22,0x03,0x08,0x66,0x00,0x88,0x10,0x80,0x02,0x00,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x01,0x00,0x02,0x00,0x04,0x05,0x70,0x05,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x01,0x00,0x02,0x04,0xf6,0x04,0xf6,0x04,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x01,0x00,0x02,0x00,0x8c,0x02,0x8a,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x01,0x00,0x01,0x00,0x04,0x05,0x56,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,
	0x01,0x00,0x02,0x04,0x3a,0x05,0xc0,0x03,0x01,0x00,0x02,0x00,0x00,0x00,0x00,0x00,
	0x01,0x00,0x01,0x00,0x04,0x04,0x56,0x02,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,
};
#endif
#if PANEL == INNONLUX_RSDS
code unsigned char TCON_Tab[]={
//	  0    1    2    3    4    5    6    7    8    9    a
	0x00,0x62,0x22,0x0f,0x08,0xa3,0x01,0x86,0x10,0x80,0x02,0x00,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x01,0x00,0x01,0x00,0x04,0x05,0x48,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x01,0x00,0x01,0x00,0xa0,0x04,0xa0,0x04,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x01,0x00,0x02,0x00,0x8c,0x02,0x8a,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,
	0x01,0x00,0x01,0x00,0xc0,0x04,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,
	0x01,0x00,0x01,0x00,0xe0,0x04,0x01,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,
};
#endif

#if PANEL == HannStar_HSD150MX84  //Daniel 2004-01-28
code unsigned char TCON_Tab[]={
/*
//	0	 1	  2    3	4	 5    6    7    8    9    A    B    C    D    E    F 
	0x40,0x60,0x01,0x0F,0x00,0x20,0x00,0x00,0x17,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//0
	0x01,0x00,0x01,0x00,0x40,0x00,0xf0,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//1	//LOAD
	0x01,0x00,0x04,0x03,0x50,0x01,0x50,0x01,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//2	//POL
	0x01,0x03,0x02,0x03,0xf0,0x04,0xf0,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//3	//STV1
	0x01,0x03,0x03,0x03,0xf0,0x04,0xf0,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//4	//STV2
	0x02,0x00,0x04,0x03,0xf0,0x00,0x40,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//5	//CPV
	0x01,0x00,0x05,0x03,0x10,0x00,0x02,0x04,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//6	//OE
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//7
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//8
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//9
};*//*
//Timing table for HannStar X84
//	0	 1	  2      3	    4	     5      6       7      8      9      A      B      C      D      E      F 
	0x40,0x20,0x01,0x0F,0x00,0x09,0x00,0x00,0x17,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//0
	0x01,0x00,0x01,0x00,0x40,0x00,0xf0,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//1	//LOAD
	0x01,0x00,0x04,0x03,0x50,0x01,0x50,0x01,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//2	//POL
	0x04,0x03,0x02,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//3	//STV1
	0x04,0x03,0x04,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//4	//STV2
	0x02,0x00,0x04,0x03,0xf0,0x00,0x40,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//5	//CPV
	0x01,0x00,0x05,0x03,0x10,0x00,0x02,0x04,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//6	//OE
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//7
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//8
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//9
};*/
//Timing table for Lin Yu panel
//	0	 1	  2	   3	4	 5	  6	   7	8	 9	  A
/*	0x40,0x60,0x01,0x0F,0x00,0x09,0x00,0x00,0x17,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//0
	0x01,0x00,0x01,0x03,0x05,0x04,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//1	//LOAD
	0x01,0x00,0x04,0x03,0x02,0x04,0x02,0x04,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//2	//POL
	0x02,0x03,0x01,0x00,0x30,0x04,0x30,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//3	//STV1
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//4	//STV2
	0x01,0x00,0x01,0x03,0x20,0x04,0x50,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//5	//CPV
	0x01,0x00,0x05,0x03,0x10,0x04,0x30,0x04,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,//6	//OE
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,//7
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,//8
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//9
}; */

//	0	 1	  2      3	    4	     5       6      7       8      9      A      B      C      D      E     F 
/*	0x40,0x60,0x01,0x0F,0x00,0x09,0x00,0x00,0x17,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x02,0x00,0x01,0x03,0x40,0x01,0xc0,0x00,0x34,0x00,0x00,0x00,0x00,0x00,0x00,0x00,	//LOAD
	0x01,0x00,0x04,0x03,0x50,0x01,0x50,0x01,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,	//POL
	0x02,0x00,0x04,0x03,0xf0,0x04,0x40,0x00,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,	//STV1
	0x01,0x00,0x04,0x03,0xf0,0x04,0xf0,0x04,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,	//STV2
	0x01,0x00,0x05,0x03,0x40,0x02,0x10,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,	//CPV
	0x04,0x00,0x02,0x03,0x40,0x02,0x40,0x01,0x35,0x00,0x00,0x00,0x00,0x00,0x00,0x00,	//OE
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};*/
	//	0	 1	  2      3	    4	     5       6      7       8      9      A      B      C      D      E     F   //ljj
	0x00,0x62,0x22,0x0f,0x08,0xa3,0x01,0x86,0x10,0x80,0x02,0x00,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x01,0x00,0x01,0x00,0x04,0x05,0x48,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x01,0x00,0x01,0x00,0xa0,0x04,0xa0,0x04,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x01,0x00,0x02,0x00,0x8c,0x02,0x8a,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,
	0x01,0x00,0x01,0x00,0xc0,0x04,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,
	0x01,0x00,0x01,0x00,0xe0,0x04,0x01,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,
};
#endif

void UpdatePresetData(void)
{
code unsigned char UpdateSquenceTable[]={
	0x0a,0x09,0x0B,0x0C,0x12,0x13,0x14,0x15,
	0x16,0x17,0x18,0x19,0x1A,0x1B,0x4D,0x5E,
	0x5F,0x60,0x61,0x63,0x6f
};

code unsigned char D1024x768[]={
	0x1E,0x05,0x51,0x84,0x08,0x00,0x1D,0x00,
	0x00,0x03,0x95,0x00,0x00,0x04,0x00,DT5E,
	DT5F,0x03,DT61,DT63,0x0f
};

unsigned char i;
	for(i=0; i<21; i++){
		WriteIIC_HW(Scaler_Addr,UpdateSquenceTable[i],D1024x768[i]);
	}
}

void InitScaler(void)
{
unsigned char i;
code unsigned char InitTab[30][2]={
	{0x01,(0x48|DT01)},
	{0x4E,(unsigned char)PanelTypVTotal},{0x4F,(unsigned char)(PanelTypVTotal>>8)}, // Display Vtotal
	{0x50,(unsigned char)PanelHeight},{0x51,(unsigned char)(PanelHeight>>8)}, // Display VActive
	{0x52,(unsigned char)PanelVSyncStart},{0x53,(unsigned char)(PanelVSyncStart>>8)}, // Display VStart
	{0x54,(unsigned char)PanelVSyncEnd},{0x55,(unsigned char)(PanelVSyncEnd>>8)}, // Display VEnd
	{0x56,(unsigned char)PanelMinHTotal},{0x57,(unsigned char)(PanelMinHTotal>>8)}, // Display Htotal
	{0x58,(unsigned char)PanelWidth},{0x59,(unsigned char)(PanelWidth>>8)}, // Display HActive
	{0x5A,(unsigned char)PanelHSyncStart},{0x5B,(unsigned char)(PanelHSyncStart>>8)}, // Display HStart
	{0x5C,(unsigned char)PanelHSyncEnd},{0x5D,(unsigned char)(PanelHSyncEnd>>8)}, // Display HEnd
	{0x85,0x04},	//04
	{0x86,0xc0}, // Sync Processor Ctrl: Enable Free-run
	{0x87,0xc0}, // H/V Sync input Ctrl: Separate Sync input
	{0x88,0xc8}, // H/V Sync output Ctrl: Free-Run Output enable
	{0x8b,0x0f},
	{0x91,0xFF}, // H/V interrupt clear
	{0x92,0x00}, // H/V interrupt enable
	{0x93,0x40}, // Fast mute ctrl
	{0x94,0xa6},	//0xc4
	{0xe6,0x03},
	{0xf8,DTF8},
	{0xfd,0x05},
//	{0xfb,0xc3},
};

	if((flag3 & BIT_2) != 0x00)
		printf("Init Scaler\r\n");
	TCONInit();

	for(i=0; i<29; i++)	{
		WriteIIC_HW(Scaler_Addr,InitTab[i][0],InitTab[i][1]);
	}
	UpdatePresetData();
	if(Panel_Interface == LVDS){
		WriteIIC_HW(Scaler_Addr,0xfa,0x40);
		WriteIIC_HW(Scaler_Addr,0xfb,0xc3);
		WriteIIC_HW(Scaler_Addr,0xfe,0x02);
	}
	else if(Panel_Interface == TTL){
		WriteIIC_HW(Scaler_Addr,0xfa,0x00);
		WriteIIC_HW(Scaler_Addr,0xfb,0x00);
		WriteIIC_HW(Scaler_Addr,0xfe,0xc0);
	}
	else if(Panel_Interface == RSDS){
		WriteIIC_HW(Scaler_Addr,0xfa,0xc0);
		WriteIIC_HW(Scaler_Addr,0xfb,0x00);
		WriteIIC_HW(Scaler_Addr,0xfe,0xc1);
	}
	else{
		WriteIIC_HW(Scaler_Addr,0xfa,0x00);
		WriteIIC_HW(Scaler_Addr,0xfb,0x00);
		WriteIIC_HW(Scaler_Addr,0xfe,0xc1);
	}

//	SetDPLL(FreeRunH_Freq*PanelMinHTotal/1000);
	SetDPLL(FreeRunH_Freq*PanelMinHTotal);

	WriteIIC_HW(Scaler_Addr,0x03,0x00);
	WriteIIC_HW(Scaler_Addr,0x05,0x00);
	WriteIIC_HW(Scaler_Addr,0x07,0x00);
	WriteIIC_HW(Scaler_Addr,0x40,0x01);
	WriteIIC_HW(Scaler_Addr,0xf4,0xc0);
	WriteIIC_HW(Scaler_Addr,0x4c,DisplayControl);
	WriteIIC_HW(Scaler_Addr,0x4d,0x02);
//Noise reduction
	WriteIIC_HW(Scaler_Addr,0x42,0x3a);
	WriteIIC_HW(Scaler_Addr,0x43,0x43);
//	WriteIIC_HW(Scaler_Addr,0x44,0x12);	//orange
//	WriteIIC_HW(Scaler_Addr,0x45,0x30);
//	WriteIIC_HW(Scaler_Addr,0x49,0x10);
//
	WriteWordIIC_HW(Scaler_Addr,0x75,0x20);

	WriteIIC_HW(Scaler_Addr,0xb3,0x09);
	WriteIIC_HW(Scaler_Addr,0xd6,0xb1);		//
	if((flag3 & BIT_2) != 0x00)
		printf(PanelName);
	DVI_On();
}

void TCONInit(void)
{
unsigned char i;
	WriteIIC_HW(Scaler_Addr,0xFF,0x01); // page1 enable
#if Panel_Interface > TTL
	if((flag3 & BIT_2) != 0x00)
		printf("TCON Init\r\n");
	for(i=0; i<0x70; i=i+16){
		WritePageScaler(i,i,TCON_Tab);
	} 
	for(i=0x70; i<0x7b; i++){
		WriteIIC_HW(Scaler_Addr,i,TCON_Tab[i]);
	}
	for(i=0x80; i<0xa0; i=i+16){
		WritePageScaler(i,i,TCON_Tab);
	}
#endif
#if Panel_Spread_Spect_En == 0xff
	i = (PanelSpreadSpectrumCtrl << 1) | BIT_0;
	WriteIIC_HW(Scaler_Addr,0xf5,i);
#endif
	WriteIIC_HW(Scaler_Addr,0xFF,0x00); // page1 disable
}
#if Panel_Interface > TTL
void WritePageScaler(unsigned char addr1,unsigned char addr2,unsigned char *p)
{
unsigned char i,ch;
/* start bit */
/* transmit device */
	INTIIC1_FLG = 0xff;
	IIC1_DATA = Scaler_Addr;
	IIC1_CLK = 0x20 | IIC_BaudRate;
	IIC1_CON = 0x00;
/* transmit addr */
	MasterSendByte(addr1);
/* transmit data */
	for(i=0; i<16; i++){
		ch = p[addr2 + i];
		MasterSendByte(ch);
	}
/* transmit dumy data for stop bit */
	WaitTx();
/* stop bit */
	IIC1_CLK = 0xA0|IIC_BaudRate;
//	IIC1_CON = 0x00;

⌨️ 快捷键说明

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