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

📄 sad9882.c

📁 Ad9882.c analog公司VGA/DVI AD芯片源码
💻 C
📖 第 1 页 / 共 2 页
字号:
		byLogEvent(DEST_UART,0,&st_event_info1,"%d",u32_value);
	}

	return by_ret;
}

BYTE byAd9882GetRedOffset (UWORD32 u32_port_id, UWORD32 *u32p_value)
{
	BYTE by_ret=0;
	BYTE by_data;
	struct st_EVENT_INFO st_event_info1;

	by_ret |= byReadSingleDataAd9882(AD9882_RED_OFFSET, &by_data);
	*u32p_value=(WORD)by_data;

	if (by_qa_test_driver_enable == 1)
	{
		st_event_info1.u16_severity=LOG;
		st_event_info1.u32_pc=0;
		strcpy(st_event_info1.bya_location,"byAd9882GetRedOffset");
	
		byLogEvent(DEST_UART,0,&st_event_info1,"%d",*u32p_value);
	}

	return by_ret;
}

BYTE byAd9882GetGreenOffset (UWORD32 u32_port_id, UWORD32 *u32p_value)
{
	BYTE by_ret=0;
	BYTE by_data;
	struct st_EVENT_INFO st_event_info1;

	by_ret |= byReadSingleDataAd9882(AD9882_GREEN_OFFSET, &by_data);
	*u32p_value=(WORD)by_data;

	if (by_qa_test_driver_enable == 1)
	{
		st_event_info1.u16_severity=LOG;
		st_event_info1.u32_pc=0;
		strcpy(st_event_info1.bya_location,"byAd9882GetGreenOffset");
	
		byLogEvent(DEST_UART,0,&st_event_info1,"%d",*u32p_value);
	}

	return by_ret;
}

BYTE byAd9882GetBlueOffset (UWORD32 u32_port_id, UWORD32 *u32p_value)
{
	BYTE by_ret=0;
	BYTE by_data;
	struct st_EVENT_INFO st_event_info1;

	by_ret |= byReadSingleDataAd9882(AD9882_BLUE_OFFSET, &by_data);
	*u32p_value=(WORD)by_data;

	if (by_qa_test_driver_enable == 1)
	{
		st_event_info1.u16_severity=LOG;
		st_event_info1.u32_pc=0;
		strcpy(st_event_info1.bya_location,"byAd9882GetBlueOffset");
	
		byLogEvent(DEST_UART,0,&st_event_info1,"%d",*u32p_value);
	}

	return by_ret;
}

BYTE byAd9882GetRedGain (UWORD32 u32_port_id, UWORD32 *u32p_value)
{
	BYTE by_ret=0;
	BYTE by_data;
	struct st_EVENT_INFO st_event_info1;

	by_ret |= byReadSingleDataAd9882(AD9882_RED_GAIN, &by_data);
	*u32p_value=(UWORD32)(by_data);

	if (by_qa_test_driver_enable == 1)
	{
		st_event_info1.u16_severity=LOG;
		st_event_info1.u32_pc=0;
		strcpy(st_event_info1.bya_location,"byAd9882GetRedGain");
	
		byLogEvent(DEST_UART,0,&st_event_info1,"%d",*u32p_value);
	}

	return by_ret;
}
BYTE byAd9882GetGreenGain (UWORD32 u32_port_id, UWORD32 *u32p_value)
{
	BYTE by_ret=0;
	BYTE by_data;
	struct st_EVENT_INFO st_event_info1;

	by_ret |= byReadSingleDataAd9882(AD9882_GREEN_GAIN, &by_data);
	*u32p_value=(UWORD32)(by_data);

	if (by_qa_test_driver_enable == 1)
	{
		st_event_info1.u16_severity=LOG;
		st_event_info1.u32_pc=0;
		strcpy(st_event_info1.bya_location,"byAd9882GetGreenGain");
	
		byLogEvent(DEST_UART,0,&st_event_info1,"%d",*u32p_value);
	}

	return by_ret;
}
BYTE byAd9882GetBlueGain (UWORD32 u32_port_id, UWORD32 *u32p_value)
{
	BYTE by_ret=0;
	BYTE by_data;
	struct st_EVENT_INFO st_event_info1;

	by_ret |= byReadSingleDataAd9882(AD9882_BLUE_GAIN, &by_data);
	*u32p_value=(UWORD32)(by_data);

	if (by_qa_test_driver_enable == 1)
	{
		st_event_info1.u16_severity=LOG;
		st_event_info1.u32_pc=0;
		strcpy(st_event_info1.bya_location,"byAd9882GetBlueGain");
	
		byLogEvent(DEST_UART,0,&st_event_info1,"%d",*u32p_value);
	}

	return by_ret;
}
BYTE byAd9882GetBright (UWORD32 u32_port_id, UWORD32 *u32p_value)
{
	BYTE by_ret=0;
	UWORD32 u32_data;
	struct st_EVENT_INFO st_event_info1;

	by_ret |= byAd9882GetRedOffset(u32_port_id, &u32_data);
	*u32p_value=(UWORD32)AD9882_BRIGHT_MAX -((UWORD32)u32_data>>1);

	if (by_qa_test_driver_enable == 1)
	{
		st_event_info1.u16_severity=LOG;
		st_event_info1.u32_pc=0;
		strcpy(st_event_info1.bya_location,"byAd9882GetBright");
	
		byLogEvent(DEST_UART,0,&st_event_info1,"%d",*u32p_value);
	}

	return by_ret;
}

BYTE byAd9882GetContrast (UWORD32 u32_port_id, UWORD32 *u32p_value)
{
	BYTE by_ret=0;
	UWORD32 u32_data;
	struct st_EVENT_INFO st_event_info1;

	by_ret |= byAd9882GetRedGain(u32_port_id, &u32_data);
//	*u32p_value=(UWORD32)(u32_data);
	*u32p_value=(UWORD32)AD9882_CONTRAST_MAX -u32_data;

	if (by_qa_test_driver_enable == 1)
	{
		st_event_info1.u16_severity=LOG;
		st_event_info1.u32_pc=0;
		strcpy(st_event_info1.bya_location,"byAd9882GetContrast");
	
		byLogEvent(DEST_UART,0,&st_event_info1,"%d",*u32p_value);
	}

	return by_ret;
}

BYTE byAd9882GetRed (UWORD32 u32_port_id, UWORD32 *u32p_value)
{
	BYTE by_ret=0;
	UWORD32 u32_data;
	struct st_EVENT_INFO st_event_info1;

	by_ret |= byAd9882GetRedGain(u32_port_id, &u32_data);
	*u32p_value=(UWORD32)(u32_data);

	if (by_qa_test_driver_enable == 1)
	{
		st_event_info1.u16_severity=LOG;
		st_event_info1.u32_pc=0;
		strcpy(st_event_info1.bya_location,"byAd9882GetRed");
	
		byLogEvent(DEST_UART,0,&st_event_info1,"%d",*u32p_value);
	}

	return ERR;
}

BYTE byAd9882GetGreen (UWORD32 u32_port_id, UWORD32 *u32p_value)
{
	BYTE by_ret=0;
	UWORD32 u32_data;
	struct st_EVENT_INFO st_event_info1;

	by_ret |= byAd9882GetGreenGain(u32_port_id, &u32_data);
	*u32p_value=(UWORD32)(u32_data);

	if (by_qa_test_driver_enable == 1)
	{
		st_event_info1.u16_severity=LOG;
		st_event_info1.u32_pc=0;
		strcpy(st_event_info1.bya_location,"byAd9882GetGreen");
	
		byLogEvent(DEST_UART,0,&st_event_info1,"%d",*u32p_value);
	}

	return ERR;
}

BYTE byAd9882GetBlue (UWORD32 u32_port_id, UWORD32 *u32p_value)
{
	BYTE by_ret=0;
	UWORD32 u32_data;
	struct st_EVENT_INFO st_event_info1;

	by_ret |= byAd9882GetBlueGain(u32_port_id, &u32_data);
	*u32p_value=(UWORD32)(u32_data);

	if (by_qa_test_driver_enable == 1)
	{
		st_event_info1.u16_severity=LOG;
		st_event_info1.u32_pc=0;
		strcpy(st_event_info1.bya_location,"byAd9882GetBlue");
	
		byLogEvent(DEST_UART,0,&st_event_info1,"%d",*u32p_value);
	}

	return ERR;
}

BYTE byAd9882GetClock (UWORD32 u32_port_id, UWORD32 *u32p_value)
{
    WORD w_data;
    BYTE by_data;
	BYTE by_ret=0;
	struct st_EVENT_INFO st_event_info1;

	by_ret |= byReadSingleDataAd9882(AD9882_PLL_DIV_MSB, &by_data);
	w_data = (WORD)(by_data<<8);
	by_ret |= byReadSingleDataAd9882(AD9882_PLL_DIV_LSB, &by_data);
   	w_data = w_data |(by_data );
   	w_data = w_data >>4;
   	w_data +=1;
	*u32p_value = w_data;

	if (by_qa_test_driver_enable == 1)
	{
		st_event_info1.u16_severity=LOG;
		st_event_info1.u32_pc=0;
		strcpy(st_event_info1.bya_location,"byAd9882GetClock");
	
		byLogEvent(DEST_UART,0,&st_event_info1,"%d",*u32p_value);
	}

 	return by_ret;
}

BYTE byAd9882GetPhase (UWORD32 u32_port_id, UWORD32 *u32p_value)
{
    BYTE by_data;
	BYTE by_ret=0;
	struct st_EVENT_INFO st_event_info1;

	by_ret |= byReadSingleDataAd9882(AD9882_PHASE_ADJUST, &by_data);
	*u32p_value = (UWORD32)(by_data>>3);

	if (by_qa_test_driver_enable == 1)
	{
		st_event_info1.u16_severity=LOG;
		st_event_info1.u32_pc=0;
		strcpy(st_event_info1.bya_location,"byAd9882GetPhase");
	
		byLogEvent(DEST_UART,0,&st_event_info1,"%d",*u32p_value);
	}

 	return by_ret;
}

BYTE byAd9882GetBrightInfo (UWORD32 u32_port_id, int *ip_min,int *ip_max, UWORD32 *u32p_nominal)
{
	*ip_min = AD9882_BRIGHT_MIN;
	*ip_max = AD9882_BRIGHT_MAX;
	*u32p_nominal = AD9882_BRIGHT_MID;
	return OK;
}
BYTE byAd9882GetContrastInfo (UWORD32 u32_port_id, int *ip_min,int *ip_max, UWORD32 *u32p_nominal)
{
	*ip_min = AD9882_CONTRAST_MIN;
	*ip_max = AD9882_CONTRAST_MAX;
	*u32p_nominal = AD9882_CONTRAST_MID;
	return OK;
}

BYTE byAd9882GetRedInfo (UWORD32 u32_port_id, int *ip_min,int *ip_max, UWORD32 *u32p_nominal)
{
	*ip_min = AD9882_BRIGHT_MIN;
	*ip_max = AD9882_BRIGHT_MAX;
	*u32p_nominal = AD9882_BRIGHT_MID;
	return ERR;
}

BYTE byAd9882GetGreenInfo (UWORD32 u32_port_id, int *ip_min,int *ip_max, UWORD32 *u32p_nominal)
{
	*ip_min = AD9882_BRIGHT_MIN;
	*ip_max = AD9882_BRIGHT_MAX;
	*u32p_nominal = AD9882_BRIGHT_MID;
	return ERR;
}

BYTE byAd9882GetBlueInfo (UWORD32 u32_port_id, int *ip_min,int *ip_max, UWORD32 *u32p_nominal)
{
	*ip_min = AD9882_BRIGHT_MIN;
	*ip_max = AD9882_BRIGHT_MAX;
	*u32p_nominal = AD9882_BRIGHT_MID;
	return ERR;
}

BYTE byAd9882GetClockInfo (UWORD32 u32_port_id, int* ip_min,int *ip_max, UWORD32 *u32p_nominal)
{
	st_MODE_TMG_INFO *stp_mode;
	UWORD32 u32_md_unknown;
	UWORD32 u32_inp_setup;
	BYTE by_ret=0;

	by_ret |= PortGetInpMode(u32_port_id, &stp_mode, &u32_md_unknown, &u32_inp_setup);
	*u32p_nominal = stp_mode->s32a_mode_param[MDI_H_TOT_PIX];
	*ip_min = *u32p_nominal -  AD9882_CLOCK_MIN;
	*ip_max = *u32p_nominal + AD9882_CLOCK_MAX;
	return by_ret;
}

BYTE byAd9882GetPhaseInfo (UWORD32 u32_port_id, int *ip_min,int *ip_max, UWORD32 *u32p_nominal)
{
	*ip_min = AD9882_PHASE_MIN;
	*ip_max = AD9882_PHASE_MAX;
	*u32p_nominal = AD9882_PHASE_MIN;
	return OK;
}

BYTE byAd9882InputDetect(void)
{
	BYTE data[10],i,j,k,m;
	BYTE by_ret;

	#if 1
	for(i=0; i<10; i++)	//sample 10 times
	{
		by_ret = byReadSingleDataAd9882(AD9882_INPUT_SYNC_DETECT,&(data[i]));
		for(j=0; j<10; j++);	//delay
	}
	j=0;
	k=0;
	m=0;
	for(i=0; i<10; i++)
	{
		if(data[i] & 0x10)	//	DVI active
			j++;
		else if((data[i] & 0x80)||(data[i] & 0x40) ||(data[i] & 0x20))	//VGA active
			k++;
		else
			m++;		//no signal
	}
	if(j>5)
	  return DVI_ACTIVE;
	else if(k>5)
	  return VGA_ACTIVE;
	else if(m>5)
	  return NO_DATAINP_ACTIVE;
	#endif 
}


#endif // end #ifdef ADC_OPTION ==ADC_9882 || ADC2_OPTION ==ADC_9882
#undef SAD9882_C

/*
 ****************************************
 * $Log: sAd9882.c,v $
 *
 ****************************************
 */

⌨️ 快捷键说明

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