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

📄 vs1003.h~

📁 avr MP3 的源程序,包含文件系统,适合初学者
💻 H~
字号:
//-------------------------------------------------------------------------
//FileName     : vs1003.h
//Created by   : ZhengYanbo
//Version      : v1.0
//Last Modified: 2006.4.8
//Fuction      : low-level operations of vs1003 
//Comments     : vs1003 driver
//------------------------------------------------------------------------

#ifndef __VS1003_H__
#define __VS1003_H__

#include "type.h"

//define vs1003 pins
#define VS_SO               PORTB.6 //pb6
#define VS_SI               PORTB.5 //pb5
#define VS_SCK              PORTB.7 //pb7
#define VS_nXCS             PORTD.3 //pd3
#define VS_nXRST            PORTD.4 //pd4
#define VS_DREQ             PORTD.2 //pd2
#define VS_nXDCS            PORTD.5 //pd5

//define soft SPI pins
#define SPI_MOSI            VS_SI
#define SPI_MISO            VS_SO_PIN
#define SPI_SCK             VS_SCK


//read pinx, not port!!!
#define VS_DREQ_PIN         PIND.2 //pind2
#define VS_SO_PIN           PINB.6 //pinb6

//port direction(host in or out)
#define VS_SO_IN()          DDRB.6=0; //pb6
#define VS_SI_OUT()         DDRB.5=1; //pb5
#define VS_SCK_OUT()        DDRB.7=1; //pb7
#define VS_nXCS_OUT()       DDRD.3=1; //pd3
#define VS_nXRST_OUT()      DDRD.4=1; //pd4
#define VS_DREQ_IN()        DDRD.2=0; //pd2
#define VS_nXDCS_OUT()      DDRD.5=1; //pd5

//vs1003 datasheet
#define SCI_MODE            0x00
#define SCI_STATUS          0x01
#define SCI_BASS            0x02
#define SCI_CLOCKF          0x03
#define SCI_DECODE_TIME     0x04
#define SCI_AUDATA          0x05
#define SCI_WRAM            0x06
#define SCI_WRAMADDR        0x07
#define SCI_HDAT0           0x08
#define SCI_HDAT1           0x09
#define SCI_AIADDR          0x0a
#define SCI_VOL             0x0b
#define SCI_AICTRL0         0x0c
#define SCI_AICTRL1         0x0d
#define SCI_AICTRL2         0x0e
#define SCI_AICTRL3         0x0f

//bits of SCI_MODE
#define SM_DIFF             (1 << 0)
#define SM_SETTOZERO        (1 << 1)
#define SM_RESET            (1 << 2)
#define SM_OUTOFWAV         (1 << 3)
#define SM_PDOWN            (1 << 4)
#define SM_TESTS            (1 << 5)
#define SM_STREAM           (1 << 6)
#define SM_PLUSV            (1 << 7)
#define SM_DACT             (1 << 8)
#define SM_SDIORD           (1 << 9)
#define SM_SDISHARE         (1 << 10)
#define SM_SDINEW           (1 << 11)
#define SM_ADPCM            (1 << 12)
#define SM_ADPCM_HP         (1 << 13)

void vs1003_port_init(void);
word vs1003_SCI_read(byte address);
void vs1003_SCI_write(byte address, word data);
void vs1003_SDI_write(byte data);
void vs1003_SDI_block_write(word len, byte *buffer);
void vs1003_SDI_block_write_PGM(word len, flash byte *buffer);
void vs1003_hard_reset(void);
void vs1003_soft_reset(void);
byte vs1003_get_version(void);
void vs1003_SetVolume(byte left, byte right);
void vs1003_SetBass(byte bass_amp, byte bass_freq, 
                    byte treb_amp, byte treb_freq);
void sine_on(word freq);
void sine_off(void);
void vs1003_feed_zeros(void);
//void vs1003PlayBeep(void);

#endif

⌨️ 快捷键说明

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