📄 pt2314.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 + -