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

📄 aud_main.h

📁 TDA7540 收音机程序
💻 H
字号:
/***************************************************************************
Project  :   TDA7540 Jig board 
Compiler : ST7 HiCross C (HiWARE)
Module   :  Aud_main.h
Version  :  V 1.0
Created  : Jan.24th,2005  
Author   :  Jerry HE / ST-ShenZhen
Description
         -  audio head file
Modified
	  -    
***************************************************************************/
/******************************************************************************
 	 Definition of the Audio processor

******************************************************************************/
#ifndef AUD_MAIN_H
#define AUD_MAIN_H

#define TDA7419_ADR              0x88
#if TDA7419_IC
#define AUDIO_TEST_MODE      0x80
#define AUDIO_AUTO_INC        0x20
#define AUDIO_ZERO_REMAIN  0x40
#define I2C_AUDIO_SIZE          18

/*----Here define the Audio processor register name ---*/
#define Aud_Inp                      I2c_AudBuff[0]
#define Aud_Loud_19              I2c_AudBuff[1]
#define Aud_MuteClock_19     I2c_AudBuff[2]
#define Aud_Volume_19          I2c_AudBuff[3]
#define Aud_Treble_19            I2c_AudBuff[4]
#define Aud_Middle_19           I2c_AudBuff[5]
#define Aud_Bass_19              I2c_AudBuff[6]
#define Aud_SecondInp_19    I2c_AudBuff[7]
#define Aud_SubMidBass_19  I2c_AudBuff[8]
#define Aud_MixAndGain_19  I2c_AudBuff[9]
#define Aud_SpeakerLF_19   I2c_AudBuff[10]
#define Aud_SpeakerRF_19   I2c_AudBuff[11]
#define Aud_SpeakerLR_19   I2c_AudBuff[12]
#define Aud_SpeakerRR_19   I2c_AudBuff[13]
#define Aud_Mixing_19          I2c_AudBuff[14]
#define Aud_Subwoofer_19   I2c_AudBuff[15]
#define Aud_Spectrum_19     I2c_AudBuff[16]
#define Aud_Testing_19        I2c_AudBuff[17]

/* ---- Here define the Audio data convert items*/
#define AUDIO_VOL                0
#define AUDIO_SOURCE         1
#define AUDIO_ALL                2
#define AUDIO_BASS              3
#define AUDIO_TREBLE           4
#define AUDIO_MIDDLE          5
#define AUDIO_FADER            6
#define AUDIO_BALANCE        7
#define AUDIO_SUBWOOFER   8
//#define AUDIO_MIX         9
#define AUDIO_LOUD              9

/* ---- Here define the mute time and style ---*/
#define HARD_MUTE  0
#define SOFT_MUTE  1

#define T480US    0
#define T960US    4
#define T123MS     8

/* ---- Define the IIc transfer area */
#define AUDIO_AREA_FSOURCE		0,0
#define AUDIO_AREA_LOUD			1,1
#define AUDIO_AREA_MUTE			2,2
#define AUDIO_AREA_VOL				3,3
#define AUDIO_AREA_TRE				4,4
#define AUDIO_AREA_MID				5,5
#define AUDIO_AREA_BASS			6,6
#define AUDIO_AREA_RSOURCE		7,7
#define AUDIO_AREA_SOURCE			0,7
#define AUDIO_AREA_SMB				8,8
#define AUDIO_AREA_MG				9,9
#define AUDIO_AREA_LF				10,10
#define AUDIO_AREA_RF				11,11
#define AUDIO_AREA_LR				12,12
#define AUDIO_AREA_RR				13,13
#define AUDIO_AREA_SPEAKER              10,13
#define AUDIO_AREA_MIX				14,14
#define AUDIO_AREA_SUBW			15,15
#define AUDIO_AREA_SCA				16,16
#define AUDIO_AREA_TEST			17,17
#define AUDIO_AREA_ALL				0,17
#define AUDIO_AREA_LOUD_VOL		1,3
#define AUDIO_AREA_SOURCE_VOL		3,13
#define AUDIO_AREA_SUBW_ALL		8,15
#endif

/******************************************************************************
 	 Functions of the Audio processor

******************************************************************************/

extern void Aud_Init(void);                           // Initialize the audio processor
extern void Audio_Main(void);                    // main routine of the audio processor
extern void Audio_PowerOn(void);           // Re-poweron the audio processor, refresh
extern void Audio_Key(void);                     // Key routine for audio processor
extern void Audio_Proc(void);
extern void Disp_AudioMsg(void);            // Display the audio message
extern void SoftChange(void);                    
extern void WriteAudioRegister(unsigned char, unsigned char);
                                                                     // IIc write the audio processor
extern unsigned char ReadAudioStatus(void);
									      // IIc read the audio processor status
extern void AudioDataConvertSend(unsigned char);
									     // Convert the audio volume...
extern void CalcBalance(void);
extern void CalcFader(void);
extern void AudioMute(unsigned char, unsigned char);
									    //  Mute audio
extern void AudioUnMute(unsigned char);
extern void AudioMenu(unsigned char);
#define VOL_MENU             0
#define SOURCE_MENU          1

extern void Audio_10msTimer(void);
extern void Audio_100msTimer(void);
extern unsigned char MaxMinChangeProtect(unsigned char Num,signed char ChangeVal,unsigned char MaxVal,unsigned char MinVal,unsigned char ProtectState);

/******************************************************************************
 	Variables of Audio processor

******************************************************************************/
EXTR unsigned char I2c_AudBuff [I2C_AUDIO_SIZE];   // Audio Processor Registers buffer
EXTR unsigned char AudioWorkMode;
#define AUDIO_SOURCE_MODE  0
#define AUDIO_VOL_MODE    1
#define AUDIO_BASS_MODE  2
#define AUDIO_TREBLE_MODE  3
#define AUDIO_MIDDLE_MODE  4
#define AUDIO_BALANCE_MODE  5
#define AUDIO_FADER_MODE    6
#define AUDIO_SUBWOOFER_MODE  7
//#define AUDIO_MIXING_MODE  8
#define AUDIO_LOUD_MODE   8
#define AUDIO_VERSION_MODE  9


EXTR unsigned char AudioSource;
#define AUDIO_SOURCE_FM   0
#define AUDIO_SOURCE_AM    1
#define UP 1
#define DN -1

EXTR unsigned char AudioVol;
EXTR unsigned char NowVol;
EXTR unsigned char BackUpVol;
EXTR unsigned char BassVol;
EXTR unsigned char TrebleVol;
EXTR unsigned char MiddleVol;
EXTR unsigned char BalanceVol;
EXTR unsigned char FaderVol;
EXTR unsigned char SubwooferVol;
//EXTR unsigned char MixVol;
EXTR unsigned char LoudVol;

EXTR unsigned char AudioDispTimer;
EXTR unsigned char AudioMuteTimer;
EXTR unsigned char HalfSecondTimer;

EXTR UByteField Audio_Flag;
#define F_AudioDispReq    Audio_Flag.field.B0
#define F_Mute                  Audio_Flag.field.B1
#define F_HALFSECOND     Audio_Flag.field.B2
#define F_EXITAUDIOMODE Audio_Flag.field.B3


/******************************************************************************
 	 Constant of the Audio processor

******************************************************************************/
/* --- Costant table definition ------------------------*/
/*--- Here we define the volume/treble/bass/middle table */
#pragma INTO_ROM
#if TDA7461_IC
static const unsigned char VolTable[]=
{
	0x6F,  //-79db      //0
	0x6E,  //-78db
	0x6D,  //-77db
	0x6C,  //-76db
	0x6B,  //-75db
	0x6A,  //-74db
	0x69,  //-73db
	0x68,  //-72db
	0x67,  //-71db
	0x66,  //-70db
	0x65,  //-69db      //10
	0x64,  //-68db
	0x63,  // -67db
	0x62,  //-66db
	0x61,  //-65db
	0x60,  //-64db
	0x5F,  //-63db
	0x5E,  //-62db
	0x5D,  //-61db
	0x5C,  //-60db
	0x5B,  //-59db      //20
	0x5A,  //-58db
	0x59,  //-57db
	0x58,  //-56db
	0x57,  //-55db
	0x56,  //-54db
	0x55,  //-53db
	0x54,  //-52db
	0x53,  //-51db
	0x52,  //-50db
	0x51,  //-49db      //30
	0x50,  //-48db
	0x4F,  //-47db   
	0x4E,  //-46db
	0x4D,  //-45db
	0x4C,  //-44db
	0x4B,  //-43db
	0x4A,  //-42db
	0x49,  //-41db
	0x48,  //-40db
	0x47,  //-39db       //40
	0x46,  //-38db
	0x45,  //-37db
	0x44,  //-36db
	0x43,  //-35db
	0x42,  //-34db
	0x41,  //-33db
	0x40,  //-32db
	0x3F,  //-31db
	0x3E,  //-30db
	0x3D,  //-29db       //50
	0x3C,  //-28db
	0x3B,  //-27db
	0x3A,  //-26db
	0x39,  //-25db
	0x38,  //-24db
	0x37,  //-23db
	0x36,  //-22db
	0x35,  //-21db
	0x34,  //-20db
	0x33,  //-19db      //50
	0x32,  //-18db
	0x31,  //-17db
	0x30,  //-16db
	0x2F,  //-15db
	0x2E,  //-14db
	0x2D,  //-13db
	0x2C,  //-12db
	0x2B,  //-11db
	0x2A,  //-10db
	0x29,  //-9db      //60
	0x28,  //-8db
	0x27,  //-7db
	0x26,  //-6db
	0x25,  //-5db
	0x24,  //-4db
	0x23,  //-3db
	0x22,  //-2db
	0x21,  //-1db
	0x20,  //0db
	0x1F,  //+1db      //70
	0x1E,  //+2db
	0x1D,  //+3db
	0x1C,  //+4db
	0x1B,  //+5db
	0x1A,  //+6db
	0x19,  //+7db
	0x18,  //+8db
	0x17,  //+9db
	0x16,  //+10db
	0x15,  //+11db     //80
	0x14,  //+12db
	0x13,  //+13db
	0x12,  //+14db
	0x11,  //+15db
	0x10,  //+16db
	0x0F,  //+17db
	0x0E,  //+18db
	0x0D,  //+19db
	0x0C,  //+20db
	0x0B,  //+21db     //90
	0x0A,  //+22db
	0x09,  //+23db
	0x08,  //+24db
	0x07,  //+25db
	0x06,  //+26db
	0x05,  //+27db
	0x04,  //+28db
	0x03,  //+29db
	0x02,  //+30db
	0x01,  //+31db     //100
	0x00,  //+32db
};

static const unsigned char VolChangeTable[]=
{
	0,6,11,16,20,24,28,32,34,36,
	38,40,42,44,46,48,50,51,52,53,
	54,55,56,57,58,59,60,63,65,67,
	69,70,71,73,75,77,79,80,82,84,
	86,88,90,92,94,95,96
};

static const unsigned char SourceTable[]=
{
	4,3
};
#endif

#if TDA7419_IC
static const unsigned char VolTable[]=
{
	0x7F, // mute// 0
	0x5F, // -79dB
	0x5E, // -78dB
	0x5D, // -77dB
	0x5C, // -76dB
	0x5B, // -75dB
	0x5A, // -74dB
	0x59, // -73dB
	0x58, // -72dB
	0x57, // -71dB
	0x56, // -70dB// 10
	0x55, // -69dB
	0x54, // -68dB
	0x53, // -67dB
	0x52, // -66dB
	0x51, // -65dB
	0x50, // -64dB
	0x4F, // -63dB
	0x4E, // -62dB
	0x4D, // -61dB
	0x4C, // -60dB// 20
	0x4B, // -59dB
	0x4A, // -58dB
	0x49, // -57dB
	0x48, // -56dB
	0x47, // -55dB
	0x46, // -54dB
	0x45, // -53dB
	0x44, // -52dB
	0x43, // -51dB
	0x42, // -50dB// 30
	0x41, // -49dB
	0x40, // -48dB
	0x3F, // -47dB
	0x3E, // -46dB
	0x3D, // -45dB
	0x3C, // -44dB
	0x3B, // -43dB
	0x3A, // -42dB
	0x39, // -41dB
	0x38, // -40dB// 40
	0x37, // -39dB
	0x36, // -38dB
	0x35, // -37dB
	0x34, // -36dB
	0x33, // -35dB
	0x32, // -34dB
	0x31, // -33dB
	0x30, // -32dB
	0x2F, // -31dB
	0x2E, // -30dB// 50
	0x2D, // -29dB
	0x2C, // -28dB
	0x2B, // -27dB
	0x2A, // -26dB
	0x29, // -25dB
	0x28, // -24dB
	0x27, // -23dB
	0x26, // -22dB
	0x25, // -21dB
	0x24, // -20dB// 60
	0x23, // -19dB
	0x22, // -18dB
	0x21, // -17dB
	0x20, // -16dB
	0x1F, // -15dB
	0x1E, // -14dB
	0x1D, // -13dB
	0x1C, // -12dB
	0x1B, // -11dB
	0x1A, // -10dB// 70
	0x19, // -9dB
	0x18, // -8dB
	0x17, // -7dB
	0x16, // -6dB
	0x15, // -5dB
	0x14, // -4dB
	0x13, // -3dB
	0x12, // -2dB
	0x11, // -1dB
	0x00, // +0dB// 80
	0x01, // +1dB
	0x02, // +2dB
	0x03, // +3dB
	0x04, // +4dB
	0x05, // +5dB
	0x06, // +6dB
	0x07, // +7dB
	0x08, // +8dB
	0x09, // +9dB
	0x0A, // +10dB// 90
	0x0B, // +11dB
	0x0C, // +12dB
	0x0D, // +13dB
	0x0E, // +14dB
	0x0F // +15dB
};

static const unsigned char VolChangeTable[]=
{
	0,6,11,16,20,24,28,32,34,36,
	38,40,42,44,46,48,50,51,52,53,
	54,55,56,57,58,59,60,61,62,63,
	64,65,66,67,68,69,70,71,72,73,
	74,75,76,77,78,79,80                            //0~46 steps
};

static const unsigned char SourceTable[]=
{
	1, 1                                                 // here need define by source selector
};

static const unsigned char LoudTable[]=
{
	0x00, // +0dB
//	0x01, // +1dB
//	0x02, // +2dB
//	0x03, // +3dB
	/*0x04, // +4dB
	0x05, // +5dB*/
	0x06, // +6dB		//low
	/*0x07, // +7dB
	0x08, // +8dB
	0x09, // +9dB*/
	0x0A, // +10dB		//mid
	/*0x0B, // +11dB
	0x0C, // +12dB
	0x0D, // +13dB
	0x0E, // +14dB*/
	0x0F // +15dB		//high              
};

static const unsigned char SubwTable[]=
{
	0x00, // +0dB
	0x01, // +1dB
	0x02, // +2dB
	0x03, // +3dB
	0x04, // +4dB
	0x05, // +5dB
	0x06, // +6dB
	0x07, // +7dB
	0x08, // +8dB
	0x09, // +9dB
//	0x0A, // +10dB
	0x0B, // +11dB
//	0x0C, // +12dB
	0x0D, // +13dB
//	0x0E, // +14dB
	0x0F, // +15dB

	0x7F // mute
};

static const unsigned char BasMidTreTable[]=
{
	0x0F, // -15dB
	//0x0E, // -14dB
	0x0D, // -13dB
	//0x0C, // -12dB
	0x0B, // -11dB
	//0x0A, // -10dB
	//0x09, // -9dB
	0x08, // -8dB
	//0x07, // -7dB
	//0x06, // -6dB
	0x05, // -5dB
	//0x04, // -4dB
	0x03, // -3dB
	//0x02, // -2dB
	//0x01, // -1dB
	0x10, // +0dB
	//0x11, // +1dB
	//0x12, // +2dB
	0x13, // +3dB
	//0x14, // +4dB
	0x15, // +5dB
	//0x16, // +6dB
	//0x17, // +7dB
	0x18, // +8dB
	//0x19, // +9dB
	//0x1A, // +10dB
	0x1B, // +11dB
	//0x1C//,  +12dB
	0x1D, // +13dB
	//0x1E, // +14dB
	0x1F, // +15dB
};

static const unsigned char BalFadTable[]=
{
	0x00, // +0dB
	0x13, // -3dB
	0x15, // -5dB
	0x18, // -8dB
	0x1A, // -10dB
	0x1D, // -13dB
	0x1F, // -15dB
	0x22, // -18dB
	0x24, // -20dB
	0x27, // -23dB
	0x29, // -25dB
	0x2C, // -28dB
	0x7F // mute	
};
#endif
#endif
/*** (c) 2005  STMicroelectronics ****************** END OF FILE ***/

⌨️ 快捷键说明

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