首页 理论教育 Windows基本控制应用程序

Windows基本控制应用程序

时间:2023-06-23 理论教育 版权反馈
【摘要】:基本的Windows控制应用程序用增益控制来实现简单的talk-through。HPI_Block变量HPI_Block结构的前6条用来初始化和控制主机软件使用的变量。HPI\_Block.Codec变量用来控制DSK程序使用的codec支持的软件。因为这基本的Windows控制应用程序,增加了成员变量HPI_Block.Gain来控制声频增益。这个值会被写到DSK的HPI\_Block.Gain变量里,控制自动增益。(6211、6711板codec使用McBSP0,而其他codec都使用McBSP1。PcmDataOut然后将值送入codec。然后打开Visual C++工程并确定采用的程序编码对DSK和使用的codec的正确性。

Windows基本控制应用程序

基本的Windows控制应用程序(在本书CD中附录E的DSK6_CONTROL目录下)用增益控制来实现简单的talk-through。软件的主要部分在下面说明。为了更好地理解接口结构,建议至少粗略地阅读一下源程序代码。

HPI_Block变量

(查阅DSK6_CONTROL\DSP\TalkThru\HPI_Block.c和HPI_Block.h)HPI_Block结构的前6条用来初始化和控制主机软件使用的变量。这几条是不能改变或者删除的。HPI\_Block.Codec变量用来控制DSK程序使用的codec支持的软件。这允许所有支持TMS320C6x DSKs和codec(编解码器)使用相同的程序。一旦程序运行主机必须对这个变量赋值

由于所有HPI传输必须是32位的,因此要保证任何增加的HPI_Block成员变量都至少为32位宽度。要注意的是所有成员变量都必须声明。因为这基本的Windows控制应用程序,增加了成员变量HPI_Block.Gain来控制声频增益。

主机软件

[查阅CC6X_CONTROL\C6X_CONTROLDlg.cpp]主机软件的编写包括适合的初始化软件,它支持所有的DSK和codec。有关主机软件函数调用的详细文件在本书CD中附录E的DSK6_CONTROL.pdf文件中。

当应用程序对话窗产生时会执行CC6X_CONTROLDlg::OnInitDialog()函数。调用C6XCONTROL\_StartUp()函数来初始化主机接口软件。然后接口设置成所需模式,保证除了正确的行差不多都注释。在这之后,应用程序会等待用户单击复位或者运行按钮。当单击复位按钮时,执行CC6X_CONTROLDlg::OnResetButton()函数使DSK复位。当单击运行按钮时,执行CC6X_CONTROLDlg::OnRunButton()函数,加载程序到DSK并开始执行。然后主机会设置HPI\_Block.Codec变量来选择正确的codec支持软件。DSK应用程序等待主机写HPI\_Block.Codec变量在配置到codec的接口之前。

当增益滑动条移动时,释放左按钮时执行CC6X\_CONTROLDlg::OnRe-leasedcoptureSlider1()函数。该函数得到增益滑动条的位置并用一个对数刻度的浮点值来标注位置。这个值会被写到DSK的HPI\_Block.Gain变量里,控制自动增益。注意,变量地址是由C6XCONTROL\_getHPI\_BaseAddress()+HPI\_Block\_Application\_Base+0之和计算得来。其中第一项得到HPI_Block结构的地址,第二项计算6个必需的成员变量地址,第三项则是得到6个必需成员变量之后这个变量的偏移值。如果HPI_Block增加另一个浮点变量,那么它的地址将是C6XCONTROL\_getHPI\_BaseAddress()+HPI\_Block\_Application\_Base+4。

DSK软件

(参阅DSK6_CONTROL\DSP\TalkThru\main.c)在主函数main(),DSP等待主机给HPI\_Block.Codec变量设置一个非负值。然后初始化支持的codec,使能中断,然后进入无限循环。真正程序工作是在在中断服务程序中完成的。(www.xing528.com)

(参阅DSK6_CONTROL\DSP\TalkThru\codec.c)Codec.c中的中断服务例程处理codec的输入和输出数据。(6211、6711板codec使用McBSP0,而其他codec都使用McBSP1。)新输入的数据存储在PcmDataIn变量中,stereo codec数据存储在由两个16位采样组成的32位变量中。输出数据是PcmDataIn各个通道HPI\_Block.Gain变量相乘得到,并把结果存入PcmDataOut中。PcmDataOut然后将值送入codec。

(参阅DSK6_CONTROL\DSP\support.c)如果使用6713DSK,codec声源可以从下面三个可能性之一选择:

●线路输入;

送话器输入;

●或者,有20dB放大的送话器输入。

编解码器codec输入源能被选择,通过确保在函数Init_AIC23()中,对codec寄存器4只有线路输入没有注释掉。

编译(Building)和运行(Running)应用程序

为了准备运行应用程序,首先在CCS中打开DSP工程。修改使用的DSK所需的任何改变,然后建立工程。然后打开Visual C++工程并确定采用的程序编码对DSK和使用的codec的正确性。建立并运行程序,此时你可以通过主机控制DSK的音频增益。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈