单片机项目:驱动VS1003模块(二)

/******************************************************************
向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);
 }
}
*/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值