/******************************************************************
向VS1003的功能寄存器写入数据
******************************************************************/
void VS_Write_Reg(unsigned char addr,unsigned char hdat,unsigned char ldat)
{
VS_DREQ=1;
while(!VS_DREQ);
VS_XCS=0;
SPI_WriteByte(0x02);
SPI_WriteByte(addr);
SPI_WriteByte(hdat);
SPI_WriteByte(ldat);
VS_XCS=1;
}
/******************************************************************
向VS1003的功能寄存器读取数据
******************************************************************/
/*
unsigned int VS_Read_Reg(unsigned char addr)
{
unsigned int temp=0;
VS_DREQ=1;
while(!VS_DREQ); //VS1003µÄDREQΪ¸ßµçƽʱ²Å½ÓÊÕÊý¾Ý
VS_XCS=0;
SPI_WriteByte(0x03);
SPI_WriteByte(addr);
temp=SPI_ReadByte();
temp<<=8;
temp|=SPI_ReadByte();
VS_XCS=1;
return temp;
}
*/
/******************************************************************
VS1003软复位及初始化
******************************************************************/
void VS_Reset()
{
VS_XRESET=1;
delay(100);
VS_XRESET=0;
delay(100);
VS_XRESET=1;
delay(100);
VS_Write_Reg(0x00,0x08,0x04);
VS_Write_Reg(0x03,0x98,0x00);
VS_Write_Reg(0x0b,0x00,0x00);
VS_XDCS=0;
SPI_WriteByte(0);
SPI_WriteByte(0);
SPI_WriteByte(0);
VS_XDCS=1;
}
/******************************************************************
写入一个音频数据
******************************************************************/
void VS_Send_Dat(unsigned char dat)
{
VS_XDCS=0;
VS_DREQ=1;
while(!VS_DREQ);
SPI_WriteByte(dat);
VS_XDCS=1;
}
/******************************************************************
请空数据缓冲区
******************************************************************/
void VS_Flush_Buffer()
{
unsigned int i;
VS_XDCS=0;
for(i=0;i<2048;i++)
{
VS_Send_Dat(0);
}
VS_XDCS=1;
}
/******************************************************************
正弦测试
******************************************************************/
void VS_sin_test(unsigned char x)
{
VS_Write_Reg(0x00,0x08,0x20);
VS_DREQ=1;
while(!VS_DREQ);
VS_XDCS=0;
SPI_WriteByte(0x53);
SPI_WriteByte(0xef);
SPI_WriteByte(0x6e);
SPI_WriteByte(x);
SPI_WriteByte(0);
SPI_WriteByte(0);
SPI_WriteByte(0);
SPI_WriteByte(0);
delay(60000);
delay(60000);
delay(60000);
delay(60000);
delay(60000);
delay(60000);
SPI_WriteByte(0x45);
SPI_WriteByte(0x78);
SPI_WriteByte(0x69);
SPI_WriteByte(0x74);
SPI_WriteByte(0);
SPI_WriteByte(0);
SPI_WriteByte(0);
SPI_WriteByte(0);
VS_XDCS=1;
}
/******************************************************************
打补丁,获得实时频谱
******************************************************************/
/*
void LoadPatch()
{
unsigned int i;
for(i=0;i<943;i++)
{
VS_Write_Reg(atab[i],dtab[i]>>8,dtab[i]&0xff);
}
}
*/
单片机项目:驱动VS1003模块(二)
最新推荐文章于 2024-01-04 10:55:39 发布