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

📄 pt2314.c

📁 pt2314 的c驱动程序 经过测试 改改管脚即可
💻 C
字号:
/****************************************************************
*                      MT View Silicon Tech. Inc.
*    Copyright 2005, MT View Silicon Tech. Inc., ShangHai, China
*                    All rights reserved.
*
* Filename:      	PT2314.c
* Programmer:    	Grey
* Created: 	 		01/xx/2006
* Description: 		PT2314 audio control operation function file
*        
* Change History (most recent first):	
****************************************************************/
#include <reg51.h>
#include "type.h"
#include "utility.h"

#include "..\i2c\i2c.h"
#include "PT2314.h"
#include "debug.h"
#include ".\addon\function\function.h"
//0x40->mp3,0x41 AUX_IN  0x43 ->tuner
BYTE PT2314_INIT_DATA[] = {	0x40, 0x10 ,0xC0, 0xE0, 0x60, 0x70 };	// switch,volume, speaker-l,speaker-r,bass,treble

//
// PT2314 set a register
//
extern BYTE								//if succeed return 0, else return 1
PT2314SetReg(
	unsigned char dat					//register value
	)
{
	bit	acktemp = 0;
	
	I2CStop();
	WaitMs(10);

	I2CStart();
       acktemp = I2CWrite8Bit(PT2314_ADD);
	acktemp |= I2CWrite8Bit(dat);
	I2CStop();
	return acktemp;
}

//
// PT2314 set multi registers
//
extern BYTE								//if succeed return 0, else return 1
PT2314SetNRegs(
	unsigned char *pRegVal,				//pointer to register value
	unsigned char n						//data length
	)
{
	bit	acktemp = 0;
	unsigned char 	i;
	
	I2CStart();
    acktemp = I2CWrite8Bit(PT2314_ADD);
	for(i = 0; i < n; i++)
	{
		acktemp |= I2CWrite8Bit(pRegVal[i]);
	}
	I2CStop();
	return acktemp;
}

//
// Initial PT2314 port
//
void PT2314Init(void)
{
#if 0		//EuroLand
	
	//set GPIO^56 as output mode
	SetGpioRegBit(OII_GPIO_PORTD_OE,SDA|SCL);

	SetGpioRegBit(OII_GPIO_PORTD_OUT, SDA | SCL);
#else
	//	SET_PIN(PORT, SDA | SCL);
#endif 
}

//
//audio output channel switch
extern void 
SwitchAudioOuputChannel(unsigned char channel)
{
	PT2314_INIT_DATA [0] = channel;
#if 0
	//damp the radio voice
	if(RADIO_CH == channel)
		PT2314_INIT_DATA [1] = 0x18;	//damp 30dB
	else
		PT2314_INIT_DATA [1] = 0x00;
#endif
	
	PT2314SetNRegs(PT2314_INIT_DATA, 6);
      // DBG(("mp3"));
}			

/**************************************************************
function name :  RdVolChange
parameter:      if UpDown is true,turn up vol,else turn down
function:       adjust the vol  
**************************************************************/
void RdVolChange(unsigned char UpDown)
{
	if((UpDown == 1)&&(PT2314_INIT_DATA [1] >= 0x04))      //vol up
	{
		PT2314_INIT_DATA [1] -= 0x04;		
	}
	else if((UpDown==0)&&(PT2314_INIT_DATA [1] < 0x28))           //vol down
	{
		PT2314_INIT_DATA [1] += 0x04;
	}
	if(PT2314_INIT_DATA[1] >= 0x40)
		PT2314_INIT_DATA[1] = 0x3ff;
	
	PT2314SetReg(PT2314_INIT_DATA[1]);
	//DBG(("vol:%BX\n", PT2314_INIT_DATA[1]));
}
/**************************************************************
function name :  PT2314Mute
parameter:      if MuteOpen is ture,then mute PT2314,else turn to mormal
function:       open ro close PT2314's mute function  
**************************************************************/
void PT2314Mute(unsigned char MuteOpen)
{
	if(MuteOpen)
	   {
		PT2314SetReg(0xFF);
	       PT2314SetReg(0xdF);
	}
	else
		{
		PT2314SetReg(0xe0);
	       PT2314SetReg(0xc0);
		}
}

⌨️ 快捷键说明

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