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