unsigned int MP3_wram_read(unsigned int address) {
    unsigned int tmp1,tmp2;
    MP3_SCI_Write(SCI_WRAMADDR_ADDR,address);
    tmp1=MP3_SCI_ReadSingle(SCI_WRAM_ADDR);
    MP3_SCI_Write(SCI_WRAMADDR_ADDR,address);
    tmp2=MP3_SCI_ReadSingle(SCI_WRAM_ADDR);
    if (tmp1==tmp2) return tmp1;
    MP3_SCI_Write(SCI_WRAMADDR_ADDR,address);
    tmp1=MP3_SCI_ReadSingle(SCI_WRAM_ADDR);
    if (tmp1==tmp2) return tmp1;
    MP3_SCI_Write(SCI_WRAMADDR_ADDR,address);
    tmp1=MP3_SCI_ReadSingle(SCI_WRAM_ADDR);
    if (tmp1==tmp2) return tmp1;
    return tmp1;
}
Beispiel #2
0
//***********************************************//
//MP3_Init 
//Prototype: void  MP3_Init(void)
//Description: initial vs1011e chip
//Returns: None.
//***********************************************//
void  MP3_Init()
{
	MP3_pin_init();
	// Clear BSYNC

	// Hardware reset
	MP3_reset();
	while (!DREQ);

	MP3_SCI_Write(SCI_MODE_ADDR, 0x0800); //mode new
	MP3_SCI_Write(SCI_BASS_ADDR, 0x7A00);
	MP3_SCI_Write(SCI_CLOCKF_ADDR,0x9800);   // default 12 288 000 Hz
	//   // Maximum volume is 0x00 and total silence is 0xFE.
	//   
	//  // volume_right = 40; //0x3F;
	MP3_Set_Volume( 40, 40);
	Delay_ms(500);
}
Beispiel #3
0
//************************************************//
//MP3_soft_reset 
//Prototype: void MP3_soft_reset(unsigned char)
//Parameters: volume value after reset.
//Description: perform software reset for vs1011e, and set new volume.
//Returns: None.
//***********************************************//
void MP3_soft_reset(unsigned char volume)
{
	MP3_SCI_Write(SCI_MODE_ADDR ,0x0804) ;
	Delay_ms(1); /* One millisecond delay */
	while (!DREQ) /* wait for startup */
	;
	Delay_ms(100);
	MP3_SCI_Write(SCI_MODE_ADDR, 0x0800); //mode new
	MP3_SCI_Write(SCI_BASS_ADDR, 0x7A00);
	MP3_SCI_Write(SCI_CLOCKF_ADDR,0x9800);   // default 12 288 000 Hz
	//	Delay_ms(200); /* One millisecond delay */

	MP3_Set_Volume(volume, volume);
	Delay_ms(100); 

	MP3_SDI_Write(0x00);
	MP3_SDI_Write(0x00);
	MP3_SDI_Write(0x00);
	MP3_SDI_Write(0x00);
	Delay_ms(100);
}
Beispiel #4
0
/**************************************************************************************************
* Function MP3_Set_Volume()
* -------------------------------------------------------------------------------------------------
* Overview: Function set volume on the left and right channel
* Input: left channel volume, right channel volume
* Output: Nothing
**************************************************************************************************/
void MP3_Set_Volume(char left, char right) {
	unsigned int volume;

	volume = (left<<8) + right;             // calculate value
	MP3_SCI_Write(SCI_VOL_ADDR, volume);    // Write value to VOL register
}
void MP3_wram_write(unsigned int address, unsigned int writeData) {
    MP3_SCI_Write(SCI_WRAMADDR_ADDR, address);
    MP3_SCI_Write(SCI_WRAM_ADDR, writeData);
    return;
}