|
![](static/image/common/ico_lz.png)
楼主 |
发表于 2014-8-9 11:40:23
|
显示全部楼层
void VS_sin_test(unsigned char x)
{
// unsigned char a=0;
// while(++a<100)
// {
VS_Write_Reg(0x00,0x08,0x20);//启动测试,向0号寄存器写入0x0820 SM_SDINEW为1 SM_TEST为1
VS_DREQ=1;
while(!VS_DREQ); //等待DREQ变为高电平
VS_XDCS=0; //打开数据片选 SDI有效
VS_spi_write(0x53);//写入以下8个字节,进入正弦测试
VS_spi_write(0xef);
VS_spi_write(0x6e);
VS_spi_write(x); //参数x用来调整正弦测试中正弦波的频率 FsIdx (b7~b5):采样率表索引 S (b4~b0):正弦波的跃速 频率F=Fs X S / 128
VS_spi_write(0); //比如x=126 (0b 011 11110) FsIdx=011=3 Fs=22050Hz S=11110=30 F=22050Hz X 30 /128 =5168 Hz
VS_spi_write(0);
VS_spi_write(0);
VS_spi_write(0);
delay(60000); //这里延时一段时间,为了听到“正弦音”
// delay(60000);
// delay(60000);
// delay(60000);
VS_XDCS=1;
VS_XDCS=0;
VS_spi_write(0x45);//写入以下8个字节,退出正弦测试
VS_spi_write(0x78);
VS_spi_write(0x69);
VS_spi_write(0x74);
VS_spi_write(0);
VS_spi_write(0);delay(60000);delay(60000);//我把延时加在这里才可以听到正弦音,你知道什么原因吗?
VS_spi_write(0);
VS_spi_write(0);
VS_XDCS=1; //关闭数据片选 ,SDI无效
// }
// a=0;
} |
|