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

📄 msp4450g.c

📁 Sample code for use on smp 863x processor.
💻 C
📖 第 1 页 / 共 5 页
字号:
	case matrix_src_I2S1:	case matrix_src_I2S2:				//khuong add	case matrix_src_I2S3_c12:	case matrix_src_I2S3_c34:		//khuong end		break;	default:		return RM_INVALID_PARAMETER;	}			if( (s = read_i2c_dsp_msp4450g(pInstance,MSP4450G_DELAY,MSP4450G_I2C_ADDR,MSP4450G_SADDR_RDDSP,m, &data16)) != RM_OK )	{		printf("msp4450g_matrix_SelectSource, msp4450g_readDsp(0x%x) failed %d\n", m, s);		return RM_ERROR;	}		// source is bit 15:8	data16 = data16 & 0xFF;	data16 = data16 | (src << 8);		if( (s = write_i2c_dsp_msp4450g(pInstance,MSP4450G_DELAY,MSP4450G_I2C_ADDR,MSP4450G_SADDR_WRDSP,m, data16)) != RM_OK )	{		printf("msp4450g_matrix_SelectSource, msp4450g_writeDsp(0x%x, data=0x%lx) failed %d\n", m, data16, s);		return RM_ERROR;	}		return RM_OK;		}RMstatus msp4450g_headphone_SetVolume(struct RUA *pInstance, RMuint8 db){	RMuint32 data16;	RMuint32 data16_old;	read_i2c_dsp_msp4450g(pInstance,MSP4450G_DELAY,MSP4450G_I2C_ADDR,MSP4450G_SADDR_RDDSP,0x0006, &data16_old);	data16_old = (data16_old & 0x00FF);		data16 = db << 8;	data16 = data16 | data16_old;	printf("data is written: 0x%lx",data16);//tractran		//msp4450g_writeDsp(pC, msp_dsreg_vol_headphone, data16);	write_i2c_dsp_msp4450g(pInstance,MSP4450G_DELAY,MSP4450G_I2C_ADDR,MSP4450G_SADDR_WRDSP,0x06, data16);	return RM_OK;}RMstatus msp4450g_headphone_IncreaseVolume(struct RUA *pInstance){	RMuint32 data16;	RMuint32 data16_old;		RMuint32 db;	read_i2c_dsp_msp4450g(pInstance,MSP4450G_DELAY,MSP4450G_I2C_ADDR,MSP4450G_SADDR_RDDSP,0x0006, &data16_old);	db=data16_old>>8;	if (db<=125) {		db+=2;		printf("vol = %ld db\n",db -0x73);	}	data16_old = (data16_old & 0x00FF);		data16 = db << 8;	data16 = data16 | data16_old;	printf("data is written: 0x%lx",data16);		//msp4450g_writeDsp(pC, msp_dsreg_vol_headphone, data16);	write_i2c_dsp_msp4450g(pInstance,MSP4450G_DELAY,MSP4450G_I2C_ADDR,MSP4450G_SADDR_WRDSP,0x06, data16);	return RM_OK;}RMstatus msp4450g_headphone_DecreaseVolume(struct RUA *pInstance){	RMuint32 data16;	RMuint32 data16_old;		RMuint32 db;	read_i2c_dsp_msp4450g(pInstance,MSP4450G_DELAY,MSP4450G_I2C_ADDR,MSP4450G_SADDR_RDDSP,0x0006, &data16_old);	db=data16_old>>8;	if (db>=2) {		db-=2;		printf("vol = %ld db\n",db -0x73);	}	data16_old = (data16_old & 0x00FF);		data16 = db << 8;	data16 = data16 | data16_old;	printf("data is written: 0x%lx",data16);		//msp4450g_writeDsp(pC, msp_dsreg_vol_headphone, data16);	write_i2c_dsp_msp4450g(pInstance,MSP4450G_DELAY,MSP4450G_I2C_ADDR,MSP4450G_SADDR_WRDSP,0x06, data16);	return RM_OK;}RMstatus msp4450g_loudspeaker_SetVolume(struct RUA *pInstance, RMuint8 db){	RMuint32 data16;	RMuint32 data16_old;	read_i2c_dsp_msp4450g(pInstance,MSP4450G_DELAY,MSP4450G_I2C_ADDR,MSP4450G_SADDR_RDDSP,0x0000, &data16_old);		data16_old = (data16_old & 0x00FF);		data16 = db << 8;	data16 = data16 | data16_old;	//msp4450g_writeDsp(pC, msp_dsreg_vol_main, data16);	write_i2c_dsp_msp4450g(pInstance,MSP4450G_DELAY,MSP4450G_I2C_ADDR,MSP4450G_SADDR_WRDSP,0x00, data16);	//msp4450g_readDsp(pC,msp_dsreg_vol_main, &data16);	/*	read_i2c_dsp_msp4450g(pInstance,MSP4450G_DELAY,MSP4450G_I2C_ADDR,MSP4450G_SADDR_RDDSP,0x00, &data16);		printf("data is : 0x%lx",data16);*/		return RM_OK;}RMstatus msp4450g_loudspeaker_IncreaseVolume(struct RUA *pInstance){	RMuint32 data16;	RMuint32 data16_old;	RMuint8 db;		read_i2c_dsp_msp4450g(pInstance,MSP4450G_DELAY,MSP4450G_I2C_ADDR,MSP4450G_SADDR_RDDSP,0x0000, &data16_old);	db=data16_old>>8;	if (db<=125) {		db+=2;		printf("vol = %d db\n",db -0x73);	}		data16_old = (data16_old & 0x00FF);		data16 = db << 8;	data16 = data16 | data16_old;	//msp4450g_writeDsp(pC, msp_dsreg_vol_main, data16);	write_i2c_dsp_msp4450g(pInstance,MSP4450G_DELAY,MSP4450G_I2C_ADDR,MSP4450G_SADDR_WRDSP,0x00, data16);	//msp4450g_readDsp(pC,msp_dsreg_vol_main, &data16);	/*	read_i2c_dsp_msp4450g(pInstance,MSP4450G_DELAY,MSP4450G_I2C_ADDR,MSP4450G_SADDR_RDDSP,0x00, &data16);		printf("data is : 0x%lx",data16);*/		return RM_OK;}RMstatus msp4450g_loudspeaker_DecreaseVolume(struct RUA *pInstance){	RMuint32 data16;	RMuint32 data16_old;	RMuint8 db;		read_i2c_dsp_msp4450g(pInstance,MSP4450G_DELAY,MSP4450G_I2C_ADDR,MSP4450G_SADDR_RDDSP,0x0000, &data16_old);	db=data16_old>>8;	if (db>=2) {		db-=2;		printf("vol = %d db\n",db -0x73);	}		data16_old = (data16_old & 0x00FF);		data16 = db << 8;	data16 = data16 | data16_old;	//msp4450g_writeDsp(pC, msp_dsreg_vol_main, data16);	write_i2c_dsp_msp4450g(pInstance,MSP4450G_DELAY,MSP4450G_I2C_ADDR,MSP4450G_SADDR_WRDSP,0x00, data16);	//msp4450g_readDsp(pC,msp_dsreg_vol_main, &data16);	/*	read_i2c_dsp_msp4450g(pInstance,MSP4450G_DELAY,MSP4450G_I2C_ADDR,MSP4450G_SADDR_RDDSP,0x00, &data16);		printf("data is : 0x%lx",data16);*/		return RM_OK;}RMstatus msp4450g_InitScart1InHeadPhoneOut(struct RUA *pInstance){	RMstatus err=RM_OK;	RMuint32 regValue=0x00;	RMuint32 regAdd=0x00;	//Scart1 input to Headphone	printf("**Scart1 input to headphone** \n");	msp4450g_detect(pInstance);	msp4450g_reset(pInstance);	//Source select	regAdd=0x0013;	err=read_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_RDDSP,regAdd,&regValue);	regValue=regValue & (~(0x19<<5)); //Scart1 input	err=write_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_WRDSP,regAdd,regValue);	//SCART Input Prescale : 0db gain	regAdd=0x000d;	read_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_RDDSP,regAdd,&regValue);	regValue = regValue & 0x00ff;	regValue=regValue | 0x1900; //Prescale Scart	write_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_WRDSP,regAdd,regValue);		//Matrix Mode for Headphone output : (0x09)	regAdd=0x09;	read_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_RDDSP,regAdd,&regValue);	regValue =regValue & 0xff00;	regValue =regValue | 0x0020; //Stereo(transparent mode)	write_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_WRDSP,regAdd,regValue);	//Matrix Source for SCART input :	regAdd=0x09;	read_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_RDDSP,regAdd,&regValue);	regValue = regValue & 0x00ff;	regValue =regValue | 0x02ff; //Stereo(transparent mode)	write_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_WRDSP,regAdd,regValue);		regAdd=0x06;	read_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_RDDSP,regAdd,&regValue);		regValue = regValue & 0x00ff;	regValue =regValue | 0x7300; //Stereo(transparent mode)	write_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_WRDSP,regAdd,regValue);		//msp4450g_headphone_SetVolume(pInstance,volume);		return err;}RMstatus msp4450g_InitScart3InHeadPhoneOut(struct RUA *pInstance){	RMstatus err=RM_OK;	RMuint32 regValue=0x00;	RMuint32 regAdd=0x00;	//Scart1 input to Headphone	printf("**Scart3 input and Out direct to headphone ** \n");	msp4450g_detect(pInstance);	msp4450g_reset(pInstance);	//Source select	regAdd=0x0013;	err=read_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_RDDSP,regAdd,&regValue);	regValue=regValue & (~(0x19<<5)); //Scart1 input		regValue=regValue | (0x18<<5);	err=write_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_WRDSP,regAdd,regValue);		//SCART Input Prescale : 0db gain	regAdd=0x000d;	read_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_RDDSP,regAdd,&regValue);	regValue = regValue & 0x00ff;	regValue=regValue | 0x1900; //Prescale Scart	write_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_WRDSP,regAdd,regValue);			//Matrix Mode for Headphone output : (0x09)		regAdd=0x09;	read_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_RDDSP,regAdd,&regValue);	regValue =regValue & 0xff00;	regValue =regValue | 0x0020; //Stereo(transparent mode)	write_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_WRDSP,regAdd,regValue);		//Matrix Source for SCART input :		regAdd=0x09;	read_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_RDDSP,regAdd,&regValue);	regValue = regValue & 0x00ff;	regValue =regValue | 0x02ff; //Stereo(transparent mode)	write_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_WRDSP,regAdd,regValue);				return err;	}RMstatus msp4450g_InitScart1InLoudSpeakerOut(struct RUA *pInstance){	RMstatus err=RM_OK;	RMuint32 regValue=0x00;	RMuint32 regAdd=0x00; //Scart1 input to LoudSpeaker 		printf("**Scart1 input to LoudSpeaker** \n");	msp4450g_detect(pInstance);	msp4450g_reset(pInstance);	//Source select	regAdd=0x0013;	read_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_RDDSP,regAdd,&regValue);	regValue=regValue & (~(0x19<<5)); //Scart1 input	write_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_WRDSP,regAdd,regValue);		//SCART Input Prescale : 0db gain	regAdd=0x000d;	read_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_RDDSP,regAdd,&regValue);	regValue = regValue & 0x00ff;	regValue=regValue | 0x1900; //Prescale Scart	write_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_WRDSP,regAdd,regValue);			//Matrix Mode for LoudSpeaker output : (0x08)	//regAdd=0x09; //Headphone	regAdd=0x08; //LoudSpeaker	read_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_RDDSP,regAdd,&regValue);	regValue =regValue & 0xff00;	regValue =regValue | 0x0020; //Stereo(transparent mode)	write_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_WRDSP,regAdd,regValue);	//Matrix Source for SCART input :		//regAdd=0x09; //HeadPhone	regAdd=0x08;  //Loudspeaker	read_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_RDDSP,regAdd,&regValue);	regValue = regValue & 0x00ff;	regValue =regValue | 0x02ff; //SCART input	write_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_WRDSP,regAdd,regValue);		//Set Volume for loudSpeaker :	//regAdd=0x06; // Headphone	regAdd=0x00; //Loudspeaker/*	read_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_RDDSP,regAdd,&regValue);		regValue = regValue & 0x00ff;	regValue =regValue | 0x4D00; 	write_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_WRDSP,regAdd,regValue);*/		return err;}RMstatus msp4450g_InitScart3InLoudSpeakerOut(struct RUA *pInstance){	RMstatus err=RM_OK;	RMuint32 regValue=0x00;	RMuint32 regAdd=0x00; //Scart1 input to LoudSpeaker 		printf("**Scart3 input to LoudSpeaker** \n");	msp4450g_detect(pInstance);	msp4450g_reset(pInstance);	//Source select	regAdd=0x0013;	read_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_RDDSP,regAdd,&regValue);	regValue=regValue & (~(0x19<<5)); //Scart1 input	write_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_WRDSP,regAdd,regValue);		//SCART Input Prescale : 0db gain	regAdd=0x000d;	read_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_RDDSP,regAdd,&regValue);	regValue = regValue & 0x00ff;	regValue=regValue | 0x1900; //Prescale Scart	write_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_WRDSP,regAdd,regValue);			//Matrix Mode for LoudSpeaker output : (0x08)	//regAdd=0x09; //Headphone	regAdd=0x08; //LoudSpeaker	read_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_RDDSP,regAdd,&regValue);	regValue =regValue & 0xff00;	regValue =regValue | 0x0020; //Stereo(transparent mode)	write_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_WRDSP,regAdd,regValue);	//Matrix Source for SCART input :		//regAdd=0x09; //HeadPhone	regAdd=0x08;  //Loudspeaker	read_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_RDDSP,regAdd,&regValue);	regValue = regValue & 0x00ff;	regValue =regValue | 0x02ff; //SCART input	write_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_WRDSP,regAdd,regValue);		//Set Volume for loudSpeaker :	//regAdd=0x06; // Headphone	regAdd=0x00; //Loudspeaker/*	read_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_RDDSP,regAdd,&regValue);		regValue = regValue & 0x00ff;	regValue =regValue | 0x4D00; 	write_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_WRDSP,regAdd,regValue);*/		return err;}RMstatus msp4450g_InitScart4InHeadPhoneOut(struct RUA *pInstance){	RMstatus err=RM_OK;	RMuint32 regValue=0x00;	RMuint32 regAdd=0x00;	//Scart1 input to Headphone	printf("**Scart4 input to headphone** \n");	msp4450g_detect(pInstance);	msp4450g_reset(pInstance);	//Source select	regAdd=0x0013;	err=read_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_RDDSP,regAdd,&regValue);	//regValue=regValue & (~(0x19<<5)); //Scart1 input	regValue=regValue & (~(0x18<<5)); //Scart4 input	regValue=regValue | (0x01<<5);	err=write_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_WRDSP,regAdd,regValue);		//SCART Input Prescale : 0db gain	regAdd=0x000d;	read_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_RDDSP,regAdd,&regValue);	regValue = regValue & 0x00ff;	regValue=regValue | 0x1900; //Prescale Scart	write_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_WRDSP,regAdd,regValue);			//Matrix Mode for Headphone output : (0x09)		regAdd=0x09;	read_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_RDDSP,regAdd,&regValue);	regValue =regValue & 0xff00;	regValue =regValue | 0x0020; //Stereo(transparent mode)	write_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_WRDSP,regAdd,regValue);		//Matrix Source for SCART input :		regAdd=0x09;	read_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_RDDSP,regAdd,&regValue);	regValue = regValue & 0x00ff;	regValue =regValue | 0x02ff; //Stereo(transparent mode)	write_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_WRDSP,regAdd,regValue);	/*	regAdd=0x06;	read_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_RDDSP,regAdd,&regValue);		regValue = regValue & 0x00ff;	regValue =regValue | 0x7300; //Stereo(transparent mode)	write_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_WRDSP,regAdd,regValue);*/		//msp4450g_headphone_SetVolume(pInstance,volume);			return err;	}RMstatus msp4450g_InitScart4InLoudSpeakerOut(struct RUA *pInstance){	RMstatus err=RM_OK;	RMuint32 regValue=0x00;	RMuint32 regAdd=0x00;	//Scart1 input to LoudSpeaker 		printf("**Scart4 input to LoudSpeaker** \n");	msp4450g_detect(pInstance);	msp4450g_reset(pInstance);	//Source select

⌨️ 快捷键说明

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