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