亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? csp.c

?? 一款車載DVD的車機(jī)源程序(正在生成中的哦)
?? C
字號(hào):
/***************************************************************************
Project  :  Car two ting dvd System
Compiler :  ST7 HiCross C (HiWARE)
Module   :  autos.c 
Version  :  V 1.0
Created  :  24 11, 2005
Author   :  tomi / SA
Description
         -  Audio process,include volume control/select input/gain control/bass,treble control and so on.  
Modified
		 - tomi
***************************************************************************/
#include "Csp.h"
#include "Libr.h"
#include "Sys_config.h"
#include "i2c_drv.h"
#include "System_operation.h"

unsigned char Csp_buff[8] = {0x00,0xc0,0xe0,0x80,0xa0,0x40,0X60,0X70};
unsigned char Bass_volume = 0x07/*0db*/;	//The range is 0 to e
#pragma INTO_ROM
static const unsigned char Bass_list[]  = {0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x6e,0x6d,0x6c,0x6b,0x6a,0x69,0x68};
unsigned char Treble_volume = 0x07/*0db*/;	//The range is 0 to e
#pragma INTO_ROM
static const unsigned char Treble_list[] = {0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x7e,0x7d,0x7c,0x7b,0x7a,0x79,0x78};
unsigned char Total_volume = 30/*0db*/;	//The range is 0 to 30
#pragma INTO_ROM
static const unsigned char Total_volume_list[] = {0x38,0x30,0x2c,0x28,0x26,0x24,0x22,0x20,0x1e,0x1c,
										0x1a,0x18,0x16,0x14,0x12,0x10,0x0e,0x0d,0x0b,0x0a,
										0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00
										};
unsigned char LF_volume = 14/*0db*/;
#pragma INTO_ROM
static const unsigned char LF_list[] = {0X9F,0X98,0X94,0X90,0x8e,0X8C,0X8A,0X88,0X87,0X86,0X85,0X84,0X83,0X82,/*0X81,*/0X80};
unsigned char RF_volume = 14/*0db*/;
#pragma INTO_ROM
static const unsigned char RF_list[] = {0XBF,0XB8,0XB4,0XB0,0xbe,0XBC,0XBA,0XA8,0XA7,0XA6,0XA5,0XA4,0XA3,0XA2,/*0XA1,*/0XA0};
unsigned char LR_volume = 14/*0db*/;
#pragma INTO_ROM
static const unsigned char LR_list[] = {0XDF,0XD8,0XD4,0XD0,0xde,0XDC,0XDA,0XC8,0XC7,0XC6,0XC5,0XC4,0XC3,0XC2,/*0XC1,*/0XC0};
unsigned char RR_volume = 14/*0db*/;
#pragma INTO_ROM
static const unsigned char RR_list[] = {0XFF,0XF8,0XF4,0XF0,0xfe,0XFC,0XFA,0XE8,0XE7,0XE6,0XE5,0XE4,0XE3,0XE2,/*0XE1,*/0XE0};

unsigned char Csp_adjust_mode = Front_speaker_balance_mode;
unsigned char Front_speaker_balance_volume=7;
unsigned char Back_speaker_balance_volume=7;
void Select_audio_input_source(unsigned char Input_source);
void Enable_loudness_on(void);
void Disable_loudness_off(void);
void Select_audio_input_gain(unsigned char Input_gain);
void Audio_bass_control(void);
void Audio_treble_control(void);
void Audio_total_volume_control(void);
void Audio_LF_speaker_volume_control(void);
void Audio_RF_speaker_volume_control(void);
void Audio_LR_speaker_volume_control(void);
void Audio_RR_speaker_volume_control(void);
void Init_csp(void);
void Front_speaker_balance_volume_control(void);
void Back_speaker_balance_volume_control(void);
void Csp_up_adjust_control(void);
void Csp_down_adjust_control(void);
void Mute_csp(void);
void Unmute_csp(void);
/**********************************************************************
Function:Select the audio input source,total 3 stereo input
**********************************************************************/
void Select_audio_input_source(unsigned char Input_source)
{
	switch(Input_source)
		{
		case AV_switch_input_source:
			Audio_switch = Audio_switch & 0xfc;	
			break;
		case Radio_tuner_source:
			Audio_switch = Audio_switch & 0xfd;	
			Audio_switch = Audio_switch | 0x01;	
			break;
		case Outside_AV2_input_source:
			Audio_switch = Audio_switch & 0xfe;	//bit S0 is 0
			Audio_switch = Audio_switch | 0x02;	//bit S1 is 1
			break;
		}
	I2CWrite_nBytes(PT2313_I2C_address,Csp_buff,8);
}
/*********************************************************************
Function:Enable the loudness function on
*********************************************************************/
void Enable_loudness_on(void)
{
	ClrBit(Audio_switch,2);	//bit S2 is 0
	I2CWrite_nBytes(PT2313_I2C_address,Csp_buff,8);
}
/*******************************************************************
Function:Disable the loudness function off
*******************************************************************/
void Disable_loudness_off(void)
{
	SetBit(Audio_switch,2);	//bit S2 is 1
	I2CWrite_nBytes(PT2313_I2C_address,Csp_buff,8);
}
/*******************************************************************
Function:Select input gain:11.25db/7.5db/3.75db/0db
*******************************************************************/
void Select_audio_input_gain(unsigned char Input_gain)
{
	switch(Input_gain)
		{
		case Audio_input_gain_1125db:
			Audio_switch = Audio_switch & 0xe7;	//The bitG1 G0 are 0
			break;
		case Audio_input_gain_75db:
			Audio_switch = Audio_switch & 0xef;	//The bitG1 is 0
			Audio_switch = Audio_switch | 0x08;	//The bitG0 is 1
			break;
		case Audio_input_gain_375db:
			Audio_switch = Audio_switch & 0xf7;	//The bitG0 is 0
			Audio_switch = Audio_switch | 0x10;	//The bitG1 is 1
			break;
		case Audio_input_gain_0db:
			Audio_switch = Audio_switch | 0x18;	//The bitG1 GO are 1
			break;
		}
	I2CWrite_nBytes(PT2313_I2C_address,Csp_buff,8);
}

/*****************************************************************
Function:Bass control
*****************************************************************/
void Audio_bass_control(void)
{
	if(Bass_volume <= 0)
		Bass_volume = 0x00;	//The min is 0x00
	if(Bass_volume >= 0x0f)
		Bass_volume = 0x0e;	//The max is 0x0e
	Bass_control = Bass_list[Bass_volume];
	I2CWrite_nBytes(PT2313_I2C_address,Csp_buff,8);
}


/*******************************************************************
Function:Treble control
*******************************************************************/
void Audio_treble_control(void)
{
	if(Treble_volume <= 0)
		Treble_volume = 0x00;	//The min is 0x00
	if(Treble_volume >= 0x0f)
		Treble_volume = 0x0e;	//The max is 0x0e
	Treble_control = Treble_list[Treble_volume];
	I2CWrite_nBytes(PT2313_I2C_address,Csp_buff,8);
}

/******************************************************************
Function:Total volume control
******************************************************************/
void Audio_total_volume_control(void)
{
	if(Total_volume <= 0)
		Total_volume = 0;	//The min is 0x00
	if(Total_volume > 29)
		Total_volume = 29;	//The max is 30
	Volume_control = Total_volume_list[Total_volume];
	I2CWrite_nBytes(PT2313_I2C_address,Csp_buff,8);
	
	if(ValBit(System_flag1,Mute_flag) && Total_volume != 0)	//From 0 to 1
		{
		Unmute_csp();
		WAIT_100ms();
		Hardware_disable_mute_system;
		Hardware_disable_mute_BACK_CON;
		ClrBit(System_flag1,Mute_flag);
		}

	if(!ValBit(System_flag1,Mute_flag) && Total_volume == 0)	//From 1 to 0
		{
		Hardware_enable_mute_system;
		Hardware_enable_mute_BACK_CON;
		WAIT_100ms();
		Mute_csp();
		SetBit(System_flag1,Mute_flag);
		}
		
}
/******************************************************************
Function:LF speaker volume control
******************************************************************/
void Audio_LF_speaker_volume_control(void)
{
	if(LF_volume <= 0)
		LF_volume = 0;	//The min is 0
	if(LF_volume > 14)
		LF_volume = 14;	//The max is 15
	Speak_att_LF = LF_list[LF_volume];
	I2CWrite_nBytes(PT2313_I2C_address,Csp_buff,8);

}

/******************************************************************
Function:RF speaker volume control
******************************************************************/
void Audio_RF_speaker_volume_control(void)
{
	if(RF_volume <= 0)
		RF_volume = 0;	//The min is 0
	if(RF_volume > 14)
		RF_volume = 14;	//The max is 15
	Speak_att_RF = RF_list[RF_volume];
	I2CWrite_nBytes(PT2313_I2C_address,Csp_buff,8);

}

/******************************************************************
Function:LF speaker volume control
******************************************************************/
void Audio_LR_speaker_volume_control(void)
{
	if(LR_volume <= 0)
		LR_volume = 0;	//The min is 0
	if(LR_volume > 14)
		LR_volume = 14;	//The max is 15
	Speak_att_LR = LR_list[LR_volume];
	I2CWrite_nBytes(PT2313_I2C_address,Csp_buff,8);

}

/******************************************************************
Function:LF speaker volume control
******************************************************************/
void Audio_RR_speaker_volume_control(void)
{
	if(RR_volume <= 0)
		RR_volume = 0;	//The min is 0
	if(RR_volume > 14)
		RR_volume = 14;	//The max is 15
	Speak_att_RR = RR_list[RR_volume];
	I2CWrite_nBytes(PT2313_I2C_address,Csp_buff,8);

}
/*****************************************************************
Function:Init the csp
*****************************************************************/
void Init_csp(void)
{
	Volume_control = 0x00;	//Total volume is 0db
	Speak_att_LR = 0xc0;	//LR speaker is 0db
	Speak_att_RR = 0xe0;	//RR speaker is 0db
	Speak_att_LF = 0x80;	//LF speaker is 0db
	Speak_att_RF = 0xa0;	//RF speaker is 0db
	Audio_switch = 0x49;	//input gain is 0db/Loudness is on/input soure is AV_switch_input_source
	Bass_control = 0x67;	//bass volume is 0db
	Treble_control = 0x77;	//Treble volume is 0db
	I2CWrite_nBytes(PT2313_I2C_address,Csp_buff,8);
}

void Front_speaker_balance_volume_control(void)
{
	if(Front_speaker_balance_volume <1)
		Front_speaker_balance_volume = 0;	//The min is 0x00
	if(Front_speaker_balance_volume > 14)
		Front_speaker_balance_volume = 14;	//The max is 30
	switch(Front_speaker_balance_volume)
		{
		case 0:
			Speak_att_LF = LF_list[14];
			Speak_att_RF = RF_list[0];
			break;
		case 1:
			Speak_att_LF = LF_list[14];
			Speak_att_RF = RF_list[2];
			break;
		case 2:
			Speak_att_LF = LF_list[14];
			Speak_att_RF = RF_list[4];
			break;
		case 3:
			Speak_att_LF = LF_list[14];
			Speak_att_RF = RF_list[6];
			break;
		case 4:
			Speak_att_LF = LF_list[14];
			Speak_att_RF = RF_list[8];
			break;
		case 5:
			Speak_att_LF = LF_list[14];
			Speak_att_RF = RF_list[10];
			break;
		case 6:
			Speak_att_LF = LF_list[14];
			Speak_att_RF = RF_list[12];
			break;
		case 7:
			Speak_att_LF = LF_list[14];
			Speak_att_RF = RF_list[14];
			break;

		case 8:
			Speak_att_RF = RF_list[14];
			Speak_att_LF = LF_list[12];
			break;
		case 9:
			Speak_att_RF = RF_list[14];
			Speak_att_LF = LF_list[10];
			break;
		case 10:
			Speak_att_RF = RF_list[14];
			Speak_att_LF = LF_list[8];
			break;
		case 11:
			Speak_att_RF = RF_list[14];
			Speak_att_LF = LF_list[6];
			break;
		case 12:
			Speak_att_RF = RF_list[14];
			Speak_att_LF = LF_list[4];
			break;
		case 13:
			Speak_att_RF = RF_list[14];
			Speak_att_LF = LF_list[2];
			break;
		case 14:
			Speak_att_RF = RF_list[14];
			Speak_att_LF = LF_list[1];
			break;
		case 15:
			Speak_att_RF = RF_list[14];
			Speak_att_LF = LF_list[0];
			break;
		}
	I2CWrite_nBytes(PT2313_I2C_address,Csp_buff,8);
}

void Back_speaker_balance_volume_control(void)
{
	if(Back_speaker_balance_volume <1)
		Back_speaker_balance_volume = 0;	//The min is 0x00
	if(Back_speaker_balance_volume > 14)
		Back_speaker_balance_volume = 14;
	switch(Back_speaker_balance_volume)
		{
		case 0:
			Speak_att_LR = LR_list[14];
			Speak_att_RR = RR_list[0];
			break;
		case 1:
			Speak_att_LR = LR_list[14];
			Speak_att_RR = RR_list[2];
			break;
		case 2:
			Speak_att_LR = LR_list[14];
			Speak_att_RR = RR_list[4];
			break;
		case 3:
			Speak_att_LR = LR_list[14];
			Speak_att_RR = RR_list[6];
			break;
		case 4:
			Speak_att_LR = LR_list[14];
			Speak_att_RR = RR_list[8];
			break;
		case 5:
			Speak_att_LR = LR_list[14];
			Speak_att_RR = RR_list[10];
			break;
		case 6:
			Speak_att_LR = LR_list[14];
			Speak_att_RR = RR_list[12];
			break;
		case 7:
			Speak_att_LR = LR_list[14];
			Speak_att_RR = RR_list[14];
			break;

		case 8:
			Speak_att_RR = RR_list[14];
			Speak_att_LR = LR_list[12];
			break;
		case 9:
			Speak_att_RR = RR_list[14];
			Speak_att_LR = LR_list[10];
			break;
		case 10:
			Speak_att_RR = RR_list[14];
			Speak_att_LR = LR_list[8];
			break;
		case 11:
			Speak_att_RR = RR_list[14];
			Speak_att_LR = LR_list[6];
			break;
		case 12:
			Speak_att_RR = RR_list[14];
			Speak_att_LR = LR_list[4];
			break;
		case 13:
			Speak_att_RR = RR_list[14];
			Speak_att_LR = LR_list[2];
			break;
		case 14:
			Speak_att_RR = RR_list[14];
			Speak_att_LR = LR_list[1];
			break;
		case 15:
			Speak_att_RR = RR_list[14];
			Speak_att_LR = LR_list[0];
			break;
		}
	I2CWrite_nBytes(PT2313_I2C_address,Csp_buff,8);
}

void Csp_up_adjust_control(void)
{
	switch(Csp_adjust_mode)
		{
		case Front_speaker_balance_mode:
			Front_speaker_balance_volume++;
			Front_speaker_balance_volume_control();
			break;
		case Total_volume_mode:
			Total_volume++;
			Audio_total_volume_control();
			break;
		case Treble_volume_mode:
			Treble_volume++;
			Audio_treble_control();
			break;
		case Bass_volume_mode:
			Bass_volume++;
			Audio_bass_control();
			break;
		case Back_speaker_balance_mode:
			 Back_speaker_balance_volume++;
			Back_speaker_balance_volume_control();
			break;
		}
}

void Csp_down_adjust_control(void)
{
	switch(Csp_adjust_mode)
		{
		case Front_speaker_balance_mode:
			if(Front_speaker_balance_volume != 0)
				Front_speaker_balance_volume--;
			Front_speaker_balance_volume_control();
			break;
		case Total_volume_mode:
			if(Total_volume != 0)
				Total_volume--;
			Audio_total_volume_control();
			break;
		case Treble_volume_mode:
			if(Treble_volume != 0)
				Treble_volume--;
			Audio_treble_control();
			break;
		case Bass_volume_mode:
			if(Bass_volume != 0)
				Bass_volume--;
			Audio_bass_control();
			break;
		case Back_speaker_balance_mode:
			if(Back_speaker_balance_volume != 0)
			 	Back_speaker_balance_volume--;
			Back_speaker_balance_volume_control();
			break;
		}
}

void Mute_csp(void)
{
	Speak_att_LF=0x9f;
	Speak_att_RF=0xbf;
	Speak_att_LR=0xdf;
	Speak_att_RR=0xff;
	I2CWrite_nBytes(PT2313_I2C_address,Csp_buff,8);	
}

void Unmute_csp(void)
{
	Audio_LF_speaker_volume_control();
	Audio_RF_speaker_volume_control();
	Audio_LR_speaker_volume_control();
	Audio_RR_speaker_volume_control();
}

			
			














?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美电视剧免费观看| 欧美一区二区视频在线观看 | 91小视频免费看| 国产精品看片你懂得 | 免费看欧美美女黄的网站| 欧美视频一区二| 一卡二卡欧美日韩| 欧美日本国产一区| 亚洲欧美日韩国产另类专区| 成人午夜电影久久影院| 亚洲一区在线电影| 精品久久一区二区| 91一区二区在线观看| 综合亚洲深深色噜噜狠狠网站| 欧美日韩一区二区三区四区五区| 国产精品1024久久| 亚洲美女淫视频| 51精品国自产在线| 色狠狠桃花综合| 99精品在线免费| 国产91露脸合集magnet| 肉丝袜脚交视频一区二区| 国产精品国产三级国产三级人妇| 日韩精品一区二| 欧美精品一区二区三| 欧美一区二区三区啪啪| 欧美精品少妇一区二区三区| 91丨porny丨中文| 色欧美乱欧美15图片| 日本电影欧美片| 欧美精品乱人伦久久久久久| 欧美裸体一区二区三区| 日韩免费视频一区二区| 69久久夜色精品国产69蝌蚪网| 欧美日韩国产综合视频在线观看| 欧美日韩aaaaaa| 日韩免费电影一区| 国产精品天美传媒| 亚洲一卡二卡三卡四卡无卡久久| 亚洲成av人片观看| 久久疯狂做爰流白浆xx| 国产+成+人+亚洲欧洲自线| 色综合天天综合网天天狠天天| 日本二三区不卡| 91麻豆精品国产91久久久更新时间| 在线成人av影院| 26uuu久久天堂性欧美| 日韩伦理免费电影| 麻豆久久一区二区| 欧美综合在线视频| 中文字幕一区视频| 久久99精品久久久久婷婷| 99久久国产综合色|国产精品| 在线免费一区三区| 国产精品久久福利| 麻豆91精品视频| 91国模大尺度私拍在线视频| 欧美国产日产图区| 另类调教123区| 欧美日韩另类一区| 樱花影视一区二区| 99精品欧美一区二区三区综合在线| 精品剧情v国产在线观看在线| 一区二区三区四区av| 丁香激情综合国产| 国产精品天干天干在观线| 国产麻豆精品在线| 国产婷婷一区二区| 国产成人精品免费看| 亚洲精品在线电影| 国产一区二区在线视频| 欧美一卡2卡3卡4卡| 亚洲va天堂va国产va久| 欧美日韩精品一区二区三区蜜桃 | 久久亚洲影视婷婷| 国产精品2024| 亚洲精品成a人| 欧美精品久久久久久久多人混战 | 亚洲欧洲精品一区二区三区| 99re66热这里只有精品3直播| 亚洲蜜桃精久久久久久久| 91久久免费观看| 美女网站在线免费欧美精品| 久久先锋影音av| 欧美性一级生活| 另类欧美日韩国产在线| 日韩理论片一区二区| 欧美一三区三区四区免费在线看 | 性久久久久久久久| 91麻豆精品国产91久久久资源速度| 黄色精品一二区| 亚洲激情第一区| 久久久久亚洲综合| 99国内精品久久| 一区二区三区久久| 久久综合九色综合欧美就去吻| 色综合久久久久综合99| 久久狠狠亚洲综合| 天天av天天翘天天综合网| 日本一区二区综合亚洲| 日韩一区二区电影| 在线这里只有精品| 色综合天天综合色综合av| 国产一区二区三区四区五区美女| 一级特黄大欧美久久久| 中文字幕中文在线不卡住| 精品国产一区二区在线观看| 6080午夜不卡| 欧美一区二区三区在线看| 精品视频一区二区三区免费| 99视频精品在线| 99久久综合精品| 91久久人澡人人添人人爽欧美 | 国产成a人亚洲精| 91网站在线播放| 91色视频在线| 欧美日韩国产成人在线91| 欧美日本高清视频在线观看| 日韩限制级电影在线观看| 精品国产伦理网| 国产精品二三区| 亚洲成人动漫在线观看| 精品午夜久久福利影院| 国产激情偷乱视频一区二区三区| 成人黄动漫网站免费app| 91免费在线播放| 欧美α欧美αv大片| 亚洲少妇最新在线视频| 日韩电影在线免费观看| 国产99精品国产| 91精品综合久久久久久| 久久九九久久九九| 亚洲精品成人少妇| 国产一区二区精品久久91| 91小视频在线| 中文字幕在线播放不卡一区| 亚洲福利一区二区三区| 波多野结衣中文字幕一区| 欧美精品在线观看播放| 国产精品麻豆欧美日韩ww| 免费久久99精品国产| 色狠狠桃花综合| 综合久久一区二区三区| 国产一区二区三区不卡在线观看| 欧美日韩国产一区二区三区地区| 国产视频911| 国产精品888| 国产日韩精品久久久| 老司机免费视频一区二区三区| 欧美性猛交一区二区三区精品| 欧美高清在线精品一区| 国产一区二区精品久久| 欧美性猛交xxxx黑人交| 中文字幕亚洲成人| 日本道免费精品一区二区三区| 国产精品乱码妇女bbbb| 国产精品538一区二区在线| 欧美成人bangbros| 国产成人在线看| 国产精品免费网站在线观看| 99麻豆久久久国产精品免费| 亚洲三级电影网站| 91久久免费观看| 麻豆久久一区二区| 国产亚洲综合在线| 成人av综合一区| 伊人婷婷欧美激情| 国产欧美一区二区三区沐欲 | 国产高清不卡一区二区| 亚洲人妖av一区二区| 在线免费av一区| 免费在线欧美视频| 亚洲欧美在线aaa| 日韩一区二区三区精品视频| 国产91精品一区二区麻豆网站 | 精品久久久影院| 91小视频免费观看| 国内精品伊人久久久久av影院| 国产精品久久综合| 欧美xxxx在线观看| 91国产福利在线| 成人黄色在线网站| 久久99热99| 精品亚洲免费视频| 亚洲午夜影视影院在线观看| 日本一区二区三区免费乱视频| 在线观看视频一区二区欧美日韩| 国产精品一品视频| 热久久国产精品| 五月婷婷综合激情| 一区二区三区日韩在线观看| 国产欧美精品一区二区色综合朱莉| 制服丝袜亚洲播放| 欧美三区在线观看| 欧美三日本三级三级在线播放| 91免费观看视频在线| 97国产一区二区| 在线视频国内一区二区| 在线观看日韩电影| 欧美撒尿777hd撒尿|