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

📄 vs1033.h

📁 Wiznet iRadio Source
💻 H
字号:
#ifndef _vs1033_H_
#define _vs1033_H_

#include "71x_map.h"
#include <string.h>

//#define	ENABLE_DEBUG

#define STREAM_WINAMP		0
#define STREAM_HTTP		1
#define STREAM_MMS			2

#define HTTP_BUF_SIZE 1460
typedef struct
{
  u8 command[2];
  u16 tot_len;
  u32 seq_num;
  u8 Id;
  u8 flag;
  u16 len;
  u8 data[HTTP_BUF_SIZE];
}HTTP_PACKET;




#define vs1033_MODE					0x00
#define vs1033_STATUS				0x01
#define vs1033_BASS					0x02
#define vs1033_CLOCKF				0x03
#define vs1033_DECODE_TIME			0x04
#define vs1033_AUDATA				0x05
#define vs1033_WRAM				0x06
#define vs1033_WRAM_ADDR			0x07
#define vs1033_HDAT0				0x08
#define vs1033_HDAT1				0x09
#define vs1033_A1_ADDR				0x0a
#define vs1033_VOL					0x0b
#define vs1033_A1_CTRL_0			0x0c
#define vs1033_A1_CTRL_1			0x0d
#define vs1033_A1_CTRL_2			0x0e
#define vs1033_A1_CTRL_3			0x0f

#define vs1033_COMMAND_WRITE		0x02
#define vs1033_COMMAND_READ		0x03

#define vs1033_SM_DIFF				(1<<0)
#define vs1033_SM_SETTOZERO		(1<<1)
#define vs1033_SM_RESET			(1<<2)
#define vs1033_SM_OUTOFWAV		(1<<3)
#define vs1033_SM_PDOWN			(1<<4)
#define vs1033_SM_TESTS			(1<<5)
#define vs1033_SM_STREAM			(1<<6)
#define vs1033_SM_PLUSV			(1<<7)
#define vs1033_SM_DACT				(1<<8)
#define vs1033_SM_SDIORD			(1<<9)
#define vs1033_SM_SDISHARE			(1<<10)
#define vs1033_SM_SDINEW			(1<<11)
#define vs1033_SM_ADPCM			(1<<12)
#define vs1033_SM_ADPCM_HP		(1<<13)
#define vs1033_SM_LINE_IN			(1<<14)
#define vs1033_SM_CLK_RANGE		(1<<15)

/*
#define STATE_HEADER_H			1
#define STATE_HEADER_DATA		2
#define STATE_HEADER_D			3
#define STATE_PADDING_ZERO	4
#define STATE_ERROR				5
*/



//
char *memstr(char *haystack, char *needle, int size);
void Init_BSPI (void);

void Send_Request(void);

u16 Recv_Stream(u8 s);
void Push_to_VS1033(void);

u16 Parse_Reply(u8 s);
u16 Recv_HTTP(u8 s);

void vs1033_clean_up_FIFO(void);
void Display_song_info(void);
void Play_from_flash(u32 file_size);


void Send_Probe(void);


void 	vs1033_patch(void);

void 	vs1033_init(void);
void 	vs1033_reset(void);
void 	vs1033_soft_reset(void);

void		vs1033_volume_up(void);
void		vs1033_volume_down(void);
void 	vs1033_set_volume(u8 left, u8 right);
u8		vs1033_get_volume_percent(void);
void		vs1033_mute(void);
void		vs1033_unmute(void);

void 	vs1033_set_bass_enhancer(u8 step, u8 freq);
void 	vs1033_set_treble_enhancer(u8 step, u8 freq);
void 	vs1033_off_bass_enhancer(void);

u16		vs1033_get_bitrate(void);

void 	vs1033_WAIT_DREQ_HIGH(void);
void 	vs1033_WAIT_MCU_SPI_DELAY(void);
void 	vs1033_WAIT_MCU_SPI_DELAY_SLOW(void);

// low-level
void 	vs1033_send_SCI_data(u8 addr, u16 data);
u16 		vs1033_get_SCI_data(u8 addr);
void 	vs1033_send_SDI_data(u8* data, u16 length);
void 	vs1033_self_test(u16 time_ms);
void 	vs1033_MCU_SPI_LOW_SPEED(void);
void 	vs1033_MCU_SPI_HIGH_SPEED(void);


#define PORT2_14		14
#define PORT2_15		15
#define PORT2_11		11
#define PORT2_12		12

#define VS1033_XCS		(0x0001 << PORT2_14)
#define VS1033_XDCS		(0x0001 << PORT2_15)
#define VS1033_DREQ		(0x0001 << PORT2_11)
#define VS1033_RESET	(0x0001 << PORT2_12)

#define vs1033_XCS_HIGH()	(GPIO2->PD |= VS1033_XCS)
#define vs1033_XCS_LOW()	(GPIO2->PD &= ~(VS1033_XCS))

#define vs1033_XDCS_HIGH()	(GPIO2->PD |= VS1033_XDCS)
#define vs1033_XDCS_LOW()	(GPIO2->PD &= ~(VS1033_XDCS))

#define vs1033_RST_HIGH()	(GPIO2->PD |= VS1033_RESET)
#define vs1033_RST_LOW()	(GPIO2->PD &= ~(VS1033_RESET))

#define vs1033_MCU_SPI_FAST 			1
#define vs1033_MCU_SPI_SLOW			0

#define vs1033_MCU_ENABLE_INTERRUPT()		//{ asm ("sei;"); }
#define vs1033_MCU_DISABLE_INTERRUPT()		//{ asm ("cli;"); }
#define vs1033_MCU_NOP()					//{ asm ("nop;"); }


#endif

⌨️ 快捷键说明

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