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

📄 vs1003b.h

📁 MG64+VS1003+SDCARD+nokia5110 之多的MP3
💻 H
字号:
/*******************************************************************/
/*          VS1003 diriver for  Mega8 MP3 Player                   */
/*                                                                 */
/* Platform   : AVRStudio4.13 b528 + WinAVR20070122                */
/*              optimize -0s                                       */
/* Author     : bozai(Zhang Qibo)                                  */
/* E-mail     : sudazqb@163.com                                    */
/* MSN        : zhangqibo_1985@hotmail.com                         */
/* Date       : 2006-05-09                                         */
/*******************************************************************/
/*2007-11-22: add bass tremble control                             */
/*2007-10-21: add new functions,                                   */
/*2007-10-19: use new delay function                               */
/*2007-05-04: add slow start up code, and add enough delay         */
/*2007-04-21:                                                      */

#ifndef __VS1003B_H__
#define __VS1003B_H__

#define TREMBLE_VALUE	8		/* 0~15, 8 means off  */
#define TREMBLE_LOW_FS	8		/* 0~15, 0Hz-15KHz, lower frequency of tremble enhancement */
#define BASS_VALUE		0		/* 0~15, 0 means off  */
#define BASS_HIGH_FS	8		/* 2~15, up limit frequency of bass enhancement */

#define DEFAULT_BASS_TREMBLE ((TREMBLE_VALUE<<12)|(TREMBLE_LOW_FS<<8)|(BASS_VALUE<<4)|(BASS_HIGH_FS))

#define DEFAULT_VOLUME 0x2828	/* default volumn */

//#define CLOCK_REG       0xe000          // XTALI*4.5, 12.288*4.5 = 55.296, a bit higher than the maxmum frequency
#define CLOCK_REG       0xc000          //0xc00 is fow VS1003 or higher version
//#define CLOCK_REG       0x9800        //0x9800 is for VS1011 VS1002

#define VS1003B_XCS_DDR  DDRB
#define VS1003B_XCS_PORT PORTB
#define VS1003B_XCS_BIT  4

#define VS1003B_DREQ_DDR  DDRB
#define VS1003B_DREQ_PORT PORTB
#define VS1003B_DREQ_PIN  PINB
#define VS1003B_DREQ_BIT  6

#define VS1003B_XDCS_DDR  DDRB
#define VS1003B_XDCS_PORT PORTB
#define VS1003B_XDCS_BIT  7

#define VS1003B_XRESET_DDR  DDRB
#define VS1003B_XRESET_PORT PORTB
#define VS1003B_XRESET_BIT  5

#define VS1003B_SCK_DDR  DDRB
#define VS1003B_SCK_PORT PORTB
#define VS1003B_SCK_BIT  1

#define VS1003B_MOSI_DDR  DDRB
#define VS1003B_MOSI_PORT PORTB
#define VS1003B_MOSI_BIT  2

#define VS1003B_MISO_DDR  DDRB
#define VS1003B_MISO_PORT PORTB
#define VS1003B_MISO_BIT  3

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

/* port initialization */
#define PORT_INI(){\
					VS1003B_XCS_PORT |= 1<<VS1003B_XCS_BIT;\
					VS1003B_DREQ_PORT |= 1<<VS1003B_DREQ_BIT;\
					VS1003B_XRESET_PORT |= 1<<VS1003B_XRESET_BIT;\
					VS1003B_XDCS_PORT |= 1<<VS1003B_XDCS_BIT;\
					VS1003B_SCK_PORT |= 1<<VS1003B_SCK_BIT;\
					VS1003B_MOSI_PORT |= 1<<VS1003B_MOSI_BIT;\
					VS1003B_MISO_PORT |= 1<<VS1003B_MISO_BIT;\
																\
					VS1003B_XCS_DDR |= 1<<VS1003B_XCS_BIT;\
					VS1003B_DREQ_DDR &= ~(1<<VS1003B_DREQ_BIT);\
					VS1003B_XRESET_DDR |= 1<<VS1003B_XRESET_BIT;\
					VS1003B_XDCS_DDR |= 1<<VS1003B_XDCS_BIT;\
					VS1003B_SCK_DDR |= 1<<VS1003B_SCK_BIT;\
					VS1003B_MOSI_DDR |= 1<<VS1003B_MOSI_BIT;\
					VS1003B_MISO_DDR &= ~(1<<VS1003B_MISO_BIT);\
					}

#define VS1003B_XCS_H()    VS1003B_XCS_PORT |=  _BV(VS1003B_XCS_BIT)
#define VS1003B_XCS_L()    VS1003B_XCS_PORT &= ~_BV(VS1003B_XCS_BIT)

#define VS1003B_XRESET_H()    VS1003B_XRESET_PORT |=  _BV(VS1003B_XRESET_BIT)
#define VS1003B_XRESET_L()    VS1003B_XRESET_PORT &= ~_BV(VS1003B_XRESET_BIT)

#define VS1003B_XDCS_H()    VS1003B_XDCS_PORT |=  _BV(VS1003B_XDCS_BIT)
#define VS1003B_XDCS_L()    VS1003B_XDCS_PORT &= ~_BV(VS1003B_XDCS_BIT)


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

extern unsigned char VS1003B_Init(void);	/* Initialization, include prot and chip config */
extern void VS1003B_SoftReset(void);		/* Software reset, clear decode time and jump out midi or wma playing*/
extern unsigned int VS1003B_ReadDecodeTime(void);	/* Get current decode time, for time display */
extern void VS1003B_Fill2048Zero(void);	/* fill 32bytes zero, for wma and midi zero filling */
extern void VS1003B_Write32B(unsigned char * buf);	/* write 32bytes data */
extern unsigned char VS1003B_NeedData(void);	/* Check if it need data */
extern void VS1003B_SetVolume(unsigned int vol); /* Set volume */

/****************************************************************************************/
#endif

⌨️ 快捷键说明

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