网站大量收购独家精品文档,联系QQ:2885784924

芯唐模拟汽车发动机声音code.pptx

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

ISD9160VSP(行人警示音)DEMOLFzhang

VSP主程式使用外部SPI控制代码VSP主程式代码使用Goldwave修改声音

VSP主程式使用

程式种类目前有三种代码:依照语音文件存放的位置和控制接口方式区分。1.APROM+I2C:语音文件存储在APROM中。2.APROM+SPI:(例程采用的方式)3.SPIFlash+I2C:语音文件存储在SPIFlash中。ISD9160只有一组SPIcontroller,不能既用于存取SPIFlash,也做SPI通讯。

性能参数变频范围:参数范围是:48-192音量范围:参数范围是:0-255音源数量:目前是3个(代码中可以修改),只要存储空间够用,可以多个。

程式使用方法程式分成两部分,主程式和音源数据。主程式:HangSheng_VSP_SPI_XXXX.zip文件名是:VehicleWarningSound.bin音源数据:如果是单一的音源,直接使用wav档案就可以。如果是多个的,需要用ISD9160-VPE将wav合成Bin文件。示例音源:HangShengWavs.bin这里面有三个音源。

制作合并音源制作音源的采样率16K就可以。因为声音用于循环,所以前后要衔接很好,需要用音频编辑软件处理好。

怎么烧录代码1.设置Dataflash位置在0x5000,烧写Config。2.主程式放在在APROM中,音频数据放置在DataFlash中。

GPIO控制程式说明

控制代码Hangshen_GPIO_SPI_XXXX.zip航盛使用的是GPIO模拟SPI方式控制的,这个例子也是用GPIO方式。只要将延迟时间和GPIO使能更改到新的平台,代码都是可以通用的。这个程式的SPI读写,以及VSP指令的功能都测试通过。

SPI控制指令SPI时序需要完全符合图中所示,一组指令是4个byte。参数可以随时改变,VSPDEMO接收到就会更新。可以实现在线更改频率和音量。

读状态命令每发送4个byte数据,SPI的输出引脚就输出目前的参数数据。注意,如果当前指令是更改参数,那新的参数值在下次才能读回。使用读回状态的功能,可以判断VSPDEMO是在放音/停止状态,以及音量,频率,音源数据。

VSP主程式代码说明

变频的函数void ChangeVolFreq(void){ DPWM-ZOH_DIV=u8CurFreq}使用不同的采样率播放声音,实现变频的功能。默认是48。对应是16K频率播放。目前代码参数支持范围是:48-192。调试的频率范围是:16K-4K。如果选定的音源是16K的,则在参数192对应最慢的速度。

变音量的函数voidVolumeControlCopy()音量范围是0-255.实现的原理是PCM数据向右移动,数据幅值变小,声音变小。

主代码int32_tmain(void){ InitialSystemClock(); DrvGPIO_ClrBit(GPB,0); DrvGPIO_Open(GPB,0,IO_OUTPUT); DrvGPIO_ClrBit(GPB,7); DrvGPIO_Open(GPB,7,IO_OUTPUT);//这个GPIO是用来控制功放的,因为VSPDEMO要外接一个大的功放来播放声音,如果不播放声音,就使用这个引脚将功放禁止。 DrvPDMA_Init(); ParameterInitial(); //初始化参数 InitialSPIPortSlave();//初始化SPI,实现SPI通讯设置 PDMA_SPI(); UNLOCKREG(); SoundStartLength();//这个是处理音源数据的函数 while(1) { PlayStreamDemo(); }}

音源数据处理函数SoundStartLength();这个函数是得到音频数据的长度。音频数据的格式是WAV档案的,所以有一个表示数据开始的标志位0通过判断这个字符串,得到音频数据的长度。声音的个数是Soundcnt,最好是有多少音源,这个值就设定多少,不然可能有哪些信誉好的足球投注网站超过边界,程式崩溃。默认的是3.

播放声音处理函数这个函数是将音频数据文件的数据取出,然后将这个数据送到DPWM,实现播放声音。其中也设计到了一些搬运数据的函数。需要注意的是:这里面有个VolumeRampChange();这个函数就是,给一个初始频率,会自动从低变频过去。实现一个Ramp平滑过程,如果实际不需要,就将这个ramp代码部分屏蔽掉。

DEMO模式这里面自带了一个DEMO模式,就是频率在最大和最小之间变化,中间使用时间间隔的。注意Wait_count.DEMO模

文档评论(0)

158****9376 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档