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

📄 wm8750.c

📁 dm270 source code
💻 C
📖 第 1 页 / 共 5 页
字号:
	WM8750Regs[19] = temp + volume;
	return	DEV_ADEC_WriteCmd(R19_ALC3, WM8750Regs[19]);
}
/*-------------------------------------------------------------------------*/
STATUS	DEV_ADEC_ALC3_ATK(unsigned char time)
{
	USHORT	volume, temp;
	
	volume = (USHORT)(time & 0x0F);
	temp = WM8750Regs[19];
	temp &= 0xFFF0;
	WM8750Regs[19] = temp + volume;
	return	DEV_ADEC_WriteCmd(R19_ALC3, WM8750Regs[19]);
}

/*-------------------------------------------------------------------------*/
/*	Noise Gate Control	*/
STATUS	DEV_ADEC_NoiseGate_NGTH(unsigned char level)
{
	USHORT	volume, temp;
	
	level = level << 3;
	volume = (USHORT)(level & 0xF8);
	temp = WM8750Regs[20];
	temp &= 0xFF07;
	WM8750Regs[20] = temp + volume;
	return	DEV_ADEC_WriteCmd(R20_Noise_Gate, WM8750Regs[20]);
}
/*-------------------------------------------------------------------------*/
STATUS	DEV_ADEC_NoiseGate_NGG(unsigned char type)
{
	switch(type)	
	{
		case	PGA_Gain_Held_Constant	:	WM8750Regs[20] &=0xFFF9;
				break;
		case	Mute_ADC_Output			:	WM8750Regs[20] &=0xFFFB;
											WM8750Regs[20] |=0x0020;
				break;
/*		case	Reserved_Donot_Use		:	WM8750Regs[20] |=0x0600;
				break;												*/
	}
	return	DEV_ADEC_WriteCmd(R20_Noise_Gate, WM8750Regs[20]);
}
/*-------------------------------------------------------------------------*/
STATUS	DEV_ADEC_NoiseGate_NGAT(BOOL trueorfalse)
{
	if(trueorfalse)	WM8750Regs[20] |=0x0001;
	else			WM8750Regs[20] &=0xFFFE;
	return	DEV_ADEC_WriteCmd(R20_Noise_Gate, WM8750Regs[20]);
}

/*-------------------------------------------------------------------------*/
/*	Left ADC Digital Volume	*/
STATUS	DEV_ADEC_LeftAdcVol_LAVU(BOOL trueorfalse)
{
	if(trueorfalse)	WM8750Regs[21] |=0x0100;
	else			WM8750Regs[21] &=0xFEFF;
	return	DEV_ADEC_WriteCmd(R21_Left_ADC_Volume, WM8750Regs[21]);
}
/*-------------------------------------------------------------------------*/
STATUS	DEV_ADEC_LeftAdcVol_LADCVOL(unsigned char vol)
{
	USHORT	volume, temp;
	
	volume = (USHORT)(vol & 0xFF);
	temp = WM8750Regs[21];
	temp &= 0xFF00;
	WM8750Regs[21] = temp + volume;
	return	DEV_ADEC_WriteCmd(R21_Left_ADC_Volume, WM8750Regs[21]);
}

/*-------------------------------------------------------------------------*/
/*	Right ADC Digital Volume	*/
STATUS	DEV_ADEC_RightdcVol_RAVU(BOOL trueorfalse)
{
	if(trueorfalse)	WM8750Regs[22] |=0x0100;
	else			WM8750Regs[22] &=0xFEFF;
	return	DEV_ADEC_WriteCmd(R22_Right_ADC_Volume, WM8750Regs[22]);
}
/*-------------------------------------------------------------------------*/
STATUS	DEV_ADEC_RightdcVol_RADCVOL(unsigned char vol)
{
	USHORT	volume, temp;
	
	volume = (USHORT)(vol & 0xFF);
	temp = WM8750Regs[22];
	temp &= 0xFF00;
	WM8750Regs[22] = temp + volume;
	return	DEV_ADEC_WriteCmd(R22_Right_ADC_Volume, WM8750Regs[22]);
}

/*-------------------------------------------------------------------------*/
/*	Additional Control 1	*/
STATUS	DEV_ADEC_AddiCtrl1_TSDEN(BOOL trueorfalse)
{
	if(trueorfalse)	WM8750Regs[23] |=0x0100;
	else			WM8750Regs[23] &=0xFEFF;
	return	DEV_ADEC_WriteCmd(R23_Additional_Control1, WM8750Regs[23]);
}
/*-------------------------------------------------------------------------*/
STATUS	DEV_ADEC_AddiCtrl1_VSEL(unsigned char avdd)
{
	switch(avdd)
	{
		case	AVDD_18V	:	WM8750Regs[23] &=0xFF3F;
				break;
		case	AVDD_25V	:	WM8750Regs[23] &=0xFF7F;
								WM8750Regs[23] |=0x0040;
				break;
		case	AVDD_33V	:	WM8750Regs[23] |=0x00C0;
				break;
	}
	return	DEV_ADEC_WriteCmd(R23_Additional_Control1, WM8750Regs[23]);
}
/*-------------------------------------------------------------------------*/
STATUS	DEV_ADEC_AddiCtrl1_DMONOMIX(unsigned char select)
{
	switch(select)	
	{
		case	DMONOMIX_Stereo	:	WM8750Regs[23] &=0xFFCF;
				break;
		case	MONO_DACL		:	WM8750Regs[23] &=0xFFDF;
									WM8750Regs[23] |=0x0010;
				break;
		case	MONO_DACR		:	WM8750Regs[23] &=0xFFEF;
									WM8750Regs[23] |=0x0020;
				break;
		case	DACL_DACR		:	WM8750Regs[23] |=0x0030;
				break;
	}
	return	DEV_ADEC_WriteCmd(R23_Additional_Control1, WM8750Regs[23]);
}
/*-------------------------------------------------------------------------*/
STATUS	DEV_ADEC_AddiCtrl1_DATSEL(unsigned char select)
{
	switch(select)	
	{
		case	LLRR	:	WM8750Regs[23] &=0xFFF3;
				break;
		case	LLRL	:	WM8750Regs[23] &=0xFFF7;
							WM8750Regs[23] |=0x0004;
				break;
		case	LRRR	:	WM8750Regs[23] &=0xFFFB;
							WM8750Regs[23] |=0x0008;
				break;
		case	LRRL	:	WM8750Regs[23] |=0x000C;
				break;
	}
	return	DEV_ADEC_WriteCmd(R23_Additional_Control1, WM8750Regs[23]);
}
/*-------------------------------------------------------------------------*/
STATUS	DEV_ADEC_AddiCtrl1_DACINV(BOOL trueorfalse)
{
	if(trueorfalse)	WM8750Regs[23] |=0x0002;
	else			WM8750Regs[23] &=0xFFFD;
	return	DEV_ADEC_WriteCmd(R23_Additional_Control1, WM8750Regs[23]);
}
/*-------------------------------------------------------------------------*/
STATUS	DEV_ADEC_AddiCtrl1_TOEN(BOOL trueorfalse)
{
	if(trueorfalse)	WM8750Regs[23] |=0x0001;
	else			WM8750Regs[23] &=0xFFFE;
	return	DEV_ADEC_WriteCmd(R23_Additional_Control1, WM8750Regs[23]);
}

/*-------------------------------------------------------------------------*/
/*	Additional Control 2	*/
STATUS	DEV_ADEC_AddiCtrl2_OUT3SW(unsigned char select)
{
	switch(select)	
	{
		case	OUT3_VREF			:	WM8750Regs[24] &=0xFE7F;
				break;
		case	ROUT1_Signal		:	WM8750Regs[24] &=0xFEFF;
										WM8750Regs[24] |=0x0080;
				break;
		case	MONOOUT				:	WM8750Regs[24] &=0xFF7F;
										WM8750Regs[24] |=0x0100;
				break;
		case	Right_Mixer_Output	:	WM8750Regs[24] |=0x0180;
				break;
	}
	return	DEV_ADEC_WriteCmd(R24_Additional_Control2, WM8750Regs[24]);
}
/*-------------------------------------------------------------------------*/
STATUS	DEV_ADEC_AddiCtrl2_HPSWEN(BOOL trueorfalse)
{
	if(trueorfalse)	WM8750Regs[24] |=0x0040;
	else			WM8750Regs[24] &=0xFFBF;
	return	DEV_ADEC_WriteCmd(R24_Additional_Control2, WM8750Regs[24]);
}
/*-------------------------------------------------------------------------*/
STATUS	DEV_ADEC_AddiCtrl2_HPSWPOL(BOOL trueorfalse)
{
	if(trueorfalse)	WM8750Regs[24] |=0x0020;
	else			WM8750Regs[24] &=0xFFDF;
	return	DEV_ADEC_WriteCmd(R24_Additional_Control2, WM8750Regs[24]);
}
/*-------------------------------------------------------------------------*/
STATUS	DEV_ADEC_AddiCtrl2_ROUT2INV(BOOL trueorfalse)
{
	if(trueorfalse)	WM8750Regs[24] |=0x0010;
	else			WM8750Regs[24] &=0xFFEF;
	return	DEV_ADEC_WriteCmd(R24_Additional_Control2, WM8750Regs[24]);
}
/*-------------------------------------------------------------------------*/
STATUS	DEV_ADEC_AddiCtrl2_TRI(BOOL trueorfalse)
{
	if(trueorfalse)	WM8750Regs[24] |=0x0008;
	else			WM8750Regs[24] &=0xFFF7;
	return	DEV_ADEC_WriteCmd(R24_Additional_Control2, WM8750Regs[24]);
}
/*-------------------------------------------------------------------------*/
STATUS	DEV_ADEC_AddiCtrl2_LRCM(BOOL trueorfalse)
{
	if(trueorfalse)	WM8750Regs[24] |=0x0004;
	else			WM8750Regs[24] &=0xFFFB;
	return	DEV_ADEC_WriteCmd(R24_Additional_Control2, WM8750Regs[24]);
}
/*-------------------------------------------------------------------------*/
STATUS	DEV_ADEC_AddiCtrl2_ADCOSR(BOOL trueorfalse)
{
	if(trueorfalse)	WM8750Regs[24] |=0x0002;
	else			WM8750Regs[24] &=0xFFFD;
	return	DEV_ADEC_WriteCmd(R24_Additional_Control2, WM8750Regs[24]);
}
/*-------------------------------------------------------------------------*/
STATUS	DEV_ADEC_AddiCtrl2_DACOSR(BOOL trueorfalse)
{
	if(trueorfalse)	WM8750Regs[24] |=0x0001;
	else			WM8750Regs[24] &=0xFFFE;
	return	DEV_ADEC_WriteCmd(R24_Additional_Control2, WM8750Regs[24]);
}

/*-------------------------------------------------------------------------*/
/*	Power Menagement 1	*/
STATUS	DEV_ADEC_PwrMgmt1_VMIDSEL(unsigned char select)
{
	switch(select)	
	{
		case	Vmid_Off			:	WM8750Regs[25] &=0xFE7F;
				break;
		case	Divider_50k_ohm		:	WM8750Regs[25] &=0xFEFF;
										WM8750Regs[25] |=0x0080;
				break;
		case	Divider_500k_ohm	:	WM8750Regs[25] &=0xFF7F;
										WM8750Regs[25] |=0x0100;
				break;
		case	Divider_5k_ohm		:	WM8750Regs[25] |=0x0180;
				break;
	}
	return	DEV_ADEC_WriteCmd(R25_PWR_MGMT1, WM8750Regs[25]);
}
/*-------------------------------------------------------------------------*/
STATUS	DEV_ADEC_PwrMgmt1_VREF(BOOL trueorfalse)
{
	if(trueorfalse)	WM8750Regs[25] |=0x0040;
	else			WM8750Regs[25] &=0xFFBF;
	return	DEV_ADEC_WriteCmd(R25_PWR_MGMT1, WM8750Regs[25]);
}
/*-------------------------------------------------------------------------*/
STATUS	DEV_ADEC_PwrMgmt1_AIN(BOOL trueorfalse)
{
	if(trueorfalse)	WM8750Regs[25] |=0x0030;
	else			WM8750Regs[25] &=0xFFCF;
	return	DEV_ADEC_WriteCmd(R25_PWR_MGMT1, WM8750Regs[25]);
}	
/*-------------------------------------------------------------------------*/
STATUS	DEV_ADEC_PwrMgmt1_AINL(BOOL trueorfalse)
{
	if(trueorfalse)	WM8750Regs[25] |=0x0020;
	else			WM8750Regs[25] &=0xFFDF;
	return	DEV_ADEC_WriteCmd(R25_PWR_MGMT1, WM8750Regs[25]);
}
/*-------------------------------------------------------------------------*/
STATUS	DEV_ADEC_PwrMgmt1_AINR(BOOL trueorfalse)
{
	if(trueorfalse)	WM8750Regs[25] |=0x0010;
	else			WM8750Regs[25] &=0xFFEF;
	return	DEV_ADEC_WriteCmd(R25_PWR_MGMT1, WM8750Regs[25]);
}
/*-------------------------------------------------------------------------*/
STATUS	DEV_ADEC_PwrMgmt1_ADC(BOOL trueorfalse)
{
	if(trueorfalse)	WM8750Regs[25] |=0x000C;
	else			WM8750Regs[25] &=0xFFF3;
	return	DEV_ADEC_WriteCmd(R25_PWR_MGMT1, WM8750Regs[25]);
}
/*-------------------------------------------------------------------------*/
STATUS	DEV_ADEC_PwrMgmt1_ADCL(BOOL trueorfalse)
{
	if(trueorfalse)	WM8750Regs[25] |=0x0008;
	else			WM8750Regs[25] &=0xFFF7;
	return	DEV_ADEC_WriteCmd(R25_PWR_MGMT1, WM8750Regs[25]);
}
/*-------------------------------------------------------------------------*/
STATUS	DEV_ADEC_PwrMgmt1_ADCR(BOOL trueorfalse)
{
	if(trueorfalse)	WM8750Regs[25] |=0x0004;
	else			WM8750Regs[25] &=0xFFFB;
	return	DEV_ADEC_WriteCmd(R25_PWR_MGMT1, WM8750Regs[25]);
}
/*-------------------------------------------------------------------------*/
STATUS	DEV_ADEC_PwrMgmt1_MICB(BOOL trueorfalse)
{
	if(trueorfalse)	WM8750Regs[25] |=0x0002;
	else			WM8750Regs[25] &=0xFFFD;
	return	DEV_ADEC_WriteCmd(R25_PWR_MGMT1, WM8750Regs[25]);
}
/*-------------------------------------------------------------------------*/
STATUS	DEV_ADEC_PwrMgmt1_DIGENB(BOOL trueorfalse)
{
	if(trueorfalse)	WM8750Regs[25] &=0xFFFE;
	else			WM8750Regs[25] |=0x0001;
	return	DEV_ADEC_WriteCmd(R25_PWR_MGMT1, WM8750Regs[25]);
}

/*-------------------------------------------------------------------------*/
/*	Power Menagement 2	*/
STATUS	DEV_ADEC_PwrMgmt2_DAC(BOOL trueorfalse)
{
	if(trueorfalse)	WM8750Regs[26] |=0x0180;
	else			WM8750Regs[26] &=0xFE7F;
	return	DEV_ADEC_WriteCmd(R26_PWR_MGMT2, WM8750Regs[26]);
}
/*-------------------------------------------------------------------------*/
STATUS	DEV_ADEC_PwrMgmt2_DACL(BOOL trueorfalse)
{
	if(trueorfalse)	WM8750Regs[26] |=0x0100;
	else			WM8750Regs[26] &=0xFEFF;
	return	DEV_ADEC_WriteCmd(R26_PWR_MGMT2, WM8750Regs[26]);
}
/*-------------------------------------------------------------------------*/
STATUS	DEV_ADEC_PwrMgmt2_DACR(BOOL trueorfalse)
{
	if(trueorfalse)	WM8750Regs[26] |=0x0080;
	else			WM8750Regs[26] &=0xFF7F;
	return	DEV_ADEC_WriteCmd(R26_PWR_MGMT2, WM8750Regs[26]);
}
/*-------------------------------------------------------------------------*/
STATUS	DEV_ADEC_PwrMgmt2_OUT1(BOOL trueorfalse)
{
	if(trueorfalse)	WM8750Regs[26] |=0x0060;
	else			WM8750Regs[26] &=0xFF9F;
	return	DEV_ADEC_WriteCmd(R26_PWR_MGMT2, WM8750Regs[26]);
}
/*-------------------------------------------------------------------------*/
STATUS	DEV_ADEC_PwrMgmt2_LOUT1(BOOL trueorfalse)
{
	if(trueorfalse)	WM8750Regs[26] |=0x0040;
	else			WM8750Regs[26] &=0xFFBF;
	return	DEV_ADEC_WriteCmd(R26_PWR_MGMT2, WM8750Regs[26]);
}
/*-------------------------------------------------------------------------*/
STATUS	DEV_ADEC_PwrMgmt2_ROUT1(BOOL trueorfalse)
{
	if(trueorfalse)	WM8750Regs[26] |=0x0020;
	else			WM8750Regs[26] &=0xFFDF;
	return	DEV_ADEC_WriteCmd(R26_PWR_MGMT2, WM8750Regs[26]);
}
/*-------------------------------------------------------------------------*/
STATUS	DEV_ADEC_PwrMgmt2_OUT2(BOOL trueorfalse)
{
	if(trueorfalse)	WM8750Regs[26] |=0x0018;
	else			WM8750Regs[26] &=0xFFE7;
	return	DEV_ADEC_WriteCmd(R26_PWR_MGMT2, WM8750Regs[26]);
}
/*-------------------------------------------------------------------------*/
STATUS	DEV_ADEC_PwrMgmt2_LOUT2(BOOL trueorfalse)
{
	if(trueorfalse)	WM8750Regs[26] |=0x0010;
	else			WM8750Regs[26] &=0xFFEF;
	return	DEV_ADEC_WriteCmd(R26_PWR_MGMT2, WM8750Regs[26]);
}
/*-------------------------------------------------------------------------*/
STATUS	DEV_ADEC_PwrMgmt2_ROUT2(BOOL trueorfalse)
{
	if(trueorfalse)	WM8750Regs[26] |=0x0008;
	else			WM8750Regs[26] &=0xFFF7;
	return	DEV_ADEC_WriteCmd(R26_PWR_MGMT2, WM8750Regs[26]);
}
/*-------------------------------------------------------------------------*/
STATUS	DEV_ADEC_PwrMgmt2_MONO(BOOL trueorfalse)
{
	if(trueorfalse)	WM8750Regs[26] |=0x0004;
	else			WM8750Regs[26] &=0xFFFB;
	return	DEV_ADEC_WriteCmd(R26_PWR_MGMT2, WM8750Regs[26]);
}
/*-------------------------------------------------------------------------*/
STATUS	DEV_ADEC_PwrMgmt2_OUT3(BOOL trueorfalse)
{
	if(trueorfalse)	WM8750Regs[26] |=0x0002;
	else			WM8750Regs[26] &=0xFFFD;
	return	DEV_ADEC_WriteCmd(R26_PWR_MGMT2, WM8750Regs[26]);
}

⌨️ 快捷键说明

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