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