[初学凌阳单片机(4)]单片机原理及应用实验

  让我们来尝试一下61A板MIC录入语音的方法和播放效果。首先点击光盘→电子竞赛→基础篇→语音功能→DVR FLASH,先浏览DVR FLASH.pdf文件,将要进行的工程项目的功能是:点按K1键,开始录音;点按K2键,停止录音;点按K3键,播放录音内容。再将DVR FLASH文件夹拷贝到自己的硬盘目录下,进入IDE,打开工程项目DVR FLASH.spj ,点击橡皮擦图标,选定体名称SPCE061A→OK,编译链接 Build后,出现的错误信息表明缺少两个头文件hardware.h和dvr.h(图1),
   寻找发现在Include中有所需头文件(图2),添加头文件(图3)到工程项目中,编译链接 Build后,出现的错误信息表明,用来产生目标文件的hardware.h头文件不符合规定(图4)。试着将Include文件夹下的此文件复制到工程项目DVR DLASH.spj 所在目录下,hardware.h头文件问题解决了,新出现的dvr.h头文件问题(图5)估计与hardware.h头文件的问题相同,所以依上述方法办理。
  
  
  
   再次编译链接Build,出现五个错误(图6),错误分为两类:一是文件调用;一是函数定义。这次直接将两个.inc文件从Include文件夹下复制到所用工程项目目录下,再次编译链接Build,问题集中到hardware.asm文件上(图7),寻找D:盘,无错误信息提示中的路径D:\program Files\sunplus\unSOIED180\,工程项目中又包含有hardware.asm这个文件,并提示所包含的文件在Include目录下,无奈下试着将Include目录下的该文件拷贝到DVR FLASH.spj所在目录下,即向DVR_FLASH目录中添加hardware.asm文件(图8),编译链接Build后,错误信息发生了变化(图9),不知为什么会有这样的变化,按理说hardware.asm是同一个文件,只是在不同的目录下,但毕竟是有了变化,而且这些错误我们以前曾经见过,在Resource.asm文件中添加对这些函数的定义即可。在文件Resource.asm中添加函数定义以后,编译链接成功(图10),问题解决了。
  
  
  
  
   下载运行程序,按键录音放音均无反应。更换一个已完成的工程项目,播音正常,说明61A板的状态是好的。可以判断问题还是出在软件上,可是如何查找,真是让人一时间无从下手,因为就我们现在的情况而言,对61A板及凌阳单片机系统还只是学到了一点皮毛,无法从根本上判断出问题的症结。怎么办呢?想来想去,最后把思路锁定在那条指明路径的错误信息上。错误信息告诉我们,这个工程项目所使用的文件hardware.asm应当在D:\program Files\sunplus\unSOIED180\目录下,可以推断出当时凌阳工程师完成这个工程项目时,所使用的文件hardware.asm是存放在这个目录下的,那么是不是并非所有的工程项目均公用同一个hardware.asm文件呢?从图10中我们已知现在使用的hardware.asm文件大小为17.8KB,于是,迫不及待地开始了搜寻工作,进入光盘,点击光盘→电子竞赛→基础篇→语音功能→语音辨识→guard SD(图11),在guardSD目录下,找到了与上述大小不同的hardware.asm文件(图12),该文件大小为27.6KB。真是山穷水复疑无路,柳暗花明又一村哪!我们知道语音辨识中有语音训练的内容,也就是需要通过61A板的MIC,向单片机中录入语音,换句话说,这个语音辨识工程项目具有语音录入功能,那么它所使用的hardware.asm文件,应当是能够满足语音录入功能的一个必要条件。立刻将工程项目DVR_FLASH中的文件hardware.asm移除,用此27.6KB大小的hardware.asm文件覆盖DVR_FLASH目录下的17.8KB大小的hardware.asm文件,并添加到Source Files中,再次编译链接Build出现一个错误,一个函数定义了两次(图13)。这说明新的hardware.asm文件已经定义了这个变量,打开hardware.asm文件看一下,果然如此,我们应删除hardware.asm文件中后来添加的那些语句,删除后再次编译链接Build,下载运行程序,OK啦!按键录音、放音,全部OK啦!
  
  
  
  虽说我们是新手,虽说我们遇到了许多沟沟坎坎,磕磕绊绊的一路走来,可掂掂我们的行囊,却有了几分重量,有了几分收获,到了稍事整理的时候了,下期我们盘点一下收获,梳理一下思路,希望能汇集到朋友们的宝贵信息,也欢迎大家到电子世界论坛(bbs.eleworld.com)讨论、交流。

推荐访问:单片机 初学 凌阳