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

📄 vs1001.h

📁 This is the latest VS1053B chip interface routines combined with Elm Chan s FatFs library. Whole cod
💻 H
字号:
#ifndef __vs1001_h
#define __vs1001_h


//******************************************************************
//*    Definitions
//******************************************************************

//#define XRES            PORTC.4

#define ENABLE_XRES()  PORTC |= (1 << 4)  //PORTC.3
#define DISABLE_XRES()   PORTC &= ~(1 << 4) //PORTC.3

#define VS_SO PINC & (1 << 0)

//#define VS_SO            PINC.0
#define VS_SI           PORTC.1
#define VS_SCK          PORTC.2

#define DISABLE_XCS()  PORTC |= (1 << 3)  //PORTC.3
#define ENABLE_XCS()   PORTC &= ~(1 << 3) //PORTC.3

#define DISABLE_XDCS()  PORTC |= (1 << 6)  //PORTC.6
#define ENABLE_XDCS()   PORTC &= ~(1 << 6) //PORTC.6

#define    DREQ          PINC.5

#define SOFT                    0
#define HARD			1

// VS1011 commands
#define VS_READ             0x03        // Read Opcode
#define VS_WRITE            0x02        // Write Opcode

// VS1011 registers
#define VS_MODE         0x00        // Mode control
#define VS_STATUS       0x01        // Status of VS1011b
#define VS_BASS         0x02        // Built-in bass enhancer
#define VS_CLOCKF       0x03        // Clock freq + doubler
#define VS_DECODE_TIME  0x04        // Decode time in seconds
#define VS_AUDATA       0x05        // Misc. audio data
#define VS_WRAM         0x06        // RAM write
#define VS_WRAMADDR     0x07        // Base address for RAM write
#define VS_HDAT0        0x08        // Stream header data 0
#define VS_HDAT1        0x09        // Stream header data 1
#define VS_AIADDR       0x0A        // Start address of application
#define VS_VOL          0x0B        // Volume control
#define VS_AICTRL0      0x0C        // Application control register 0
#define VS_AICTRL1      0x0D        // Application control register 1
#define VS_AICTRL2      0x0E        // Application control register 2
#define VS_AICTRL3      0x0F        // Application control register 3

// Bit definition Mode Register
#define SM_DIFF         0        // Differential
#define SM_SETTOZERO1   1        // Set to zero
#define SM_RESET        2        // Soft Reset
#define SM_OUTOFWAV     3        // Jump out of WAV decoding
#define SM_SETTOZERO2   4        // Set to zero
#define SM_TESTS        5        // Allow SDI tests
#define SM_STREAM       6        // Stream mode
#define SM_SETTOZERO3   7        // Set to zero
#define SM_DACT         8        // DCLK active edge
#define SM_SDIORD       9        // SDI bit order
#define SM_SDISHARE     10        // Share SPI chip select
#define SM_SDINEW       11        // VS1002 native SPI modes
#define SM_SETTOZERO4   12        // Set to zero
#define SM_SETTOZERO5   13        // Set to zero

// Bit definition Status Register
#define SS_APDOWN1      2        // Analog internal power down
#define SS_APDOWN2      3        // Analog driver power down

// Mask definition Bass Enhancer Register
#define SB_AMPLITUDE    0xF0        // Enhancement in -1dB steps (0-15)
#define SB_FREQLIMIT    0x0F        // Low frequency limit in 10Hz steps (2-15)

// Mask and bit definitions for Stream Header data Register
#define HDAT0_EMPHAS     0x0003        // Emphasis
#define HDAT0_ORIGIN     2        // Original bit
#define HDAT0_COPY       3	// Copyright bit
#define HDAT0_EXT        0x0030	// Extension
#define HDAT0_MODE       0x00C0	// Mode
#define HDAT0_PRIV       8	// Private bit
#define HDAT0_PAD        9	// Pad bit
#define HDAT0_SAMRATE    0x0C00	// Sample rate
#define HDAT0_BITRATE    0xF000	// Bit rate
#define HDAT1_PROT       0	// Protection bit
#define HDAT1_LAYER      0x0006	// Layer
#define HDAT1_ID         0x0018	// ID
#define HDAT1_SYNC       0xFFE0	// Sync word


//#define VS1033_XTAL 12288000
#define VS1033_XTAL 12000000
//******************************************************************
//*    FUNCTION PROTOTYPES
//******************************************************************
void vs_init(unsigned char HardReset);
void vs_setvolume(unsigned char volume);
void vs_stream(unsigned char *Data,unsigned char Qte);
void vs_write(unsigned char addr, unsigned int data);
void Sine_On(unsigned char Freq);
void Sine_Off(void);
void vs_beep(void);
unsigned char WriteByte(unsigned char data);

#endif

⌨️ 快捷键说明

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